home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 2 / AACD 2.iso / AACD / Magazine / GraphicsCards / StormMesa / src / context.s < prev    next >
Text File  |  1999-02-04  |  97KB  |  5,214 lines

  1.  
  2. ; Storm C Compiler
  3. ; Work2:Mesa3/Mesa-3.0/src/context.c
  4.     mc68030
  5.     mc68881
  6.     XREF    _gl_set_color_function
  7.     XREF    _gl_set_vertex_function
  8.     XREF    _gl_alloc_vb
  9.     XREF    _gl_update_texture_state
  10.     XREF    _gl_free_texture_object
  11.     XREF    _gl_alloc_texture_object
  12.     XREF    _gl_free_texture_image
  13.     XREF    _gl_alloc_texture_image
  14.     XREF    _gl_set_triangle_function
  15.     XREF    _gl_alloc_stencil_buffer
  16.     XREF    _gl_set_quad_function
  17.     XREF    _gl_init_api_function_pointers
  18.     XREF    _gl_set_point_function
  19.     XREF    _gl_alloc_pb
  20.     XREF    _gl_init_math
  21.     XREF    _gl_destroy_list
  22.     XREF    _gl_init_lists
  23.     XREF    _gl_set_line_function
  24.     XREF    _gl_update_lighting
  25.     XREF    _gl_compute_material_shine_table
  26.     XREF    _gl_compute_spot_exp_table
  27.     XREF    _gl_material_bitmask
  28.     XREF    _HashFirstEntry
  29.     XREF    _DeleteHashTable
  30.     XREF    _NewHashTable
  31.     XREF    _gl_init_eval
  32.     XREF    _gl_alloc_depth_buffer
  33.     XREF    _gl_read_depth_span_int
  34.     XREF    _gl_read_depth_span_float
  35.     XREF    _gl_depth_test_pixels_greater
  36.     XREF    _gl_depth_test_pixels_less
  37.     XREF    _gl_depth_test_pixels_generic
  38.     XREF    _gl_depth_test_span_greater
  39.     XREF    _gl_depth_test_span_less
  40.     XREF    _gl_depth_test_span_generic
  41.     XREF    _gl_clip_interp_color
  42.     XREF    _gl_clip_interp_tex
  43.     XREF    _gl_clip_interp_color_tex
  44.     XREF    _gl_clip_interp_all
  45.     XREF    _gl_alloc_alpha_buffers
  46.     XREF    _gl_alloc_accum_buffer
  47.     XREF    _q_memset
  48.     XREF    _q_memcpy
  49.     XREF    _strcpy
  50.     XREF    _getenv
  51.     XREF    _malloc
  52.     XREF    _free
  53.     XREF    _calloc
  54.     XREF    _fprintf
  55.     XREF    _std__in
  56.     XREF    _std__out
  57.     XREF    _std__err
  58.  
  59.     SECTION "_CC:1",DATA
  60.  
  61.     XDEF    _CC
  62. _CC
  63.     dc.l    0
  64.  
  65.     SECTION "_alloc_shared_state:0",CODE
  66.  
  67.     rts
  68.  
  69. ;static struct gl_shared_state *alloc_shared_state( void )
  70. _alloc_shared_state
  71.     movem.l    d2/d3/a2,-(a7)
  72. L267
  73. ;   ss = (struct gl_shared_state*) calloc( 1, sizeof(struct gl_sha
  74.     pea    $28.w
  75.     pea    1.w
  76.     jsr    _calloc
  77.     addq.w    #$8,a7
  78.     move.l    d0,a2
  79. ;   if (!ss)
  80.     cmp.w    #0,a2
  81.     bne.b    L269
  82. L268
  83.     moveq    #0,d0
  84.     movem.l    (a7)+,d2/d3/a2
  85.     rts
  86. L269
  87. ;   ss->DisplayList = NewHashTable();
  88.     jsr    _NewHashTable
  89.     move.l    d0,4(a2)
  90. ;   ss->TexObjects = NewHashTable();
  91.     jsr    _NewHashTable
  92.     move.l    d0,$8(a2)
  93. ;   outOfMemory = GL_FALSE;
  94.     moveq    #0,d3
  95. ;   for (i=0;
  96.     moveq    #0,d2
  97.     bra.b    L275
  98. L270
  99. ;      ss->Default1D[i] = gl_alloc_texture_object(ss, 0, 1);
  100.     pea    1.w
  101.     clr.l    -(a7)
  102.     move.l    a2,-(a7)
  103.     jsr    _gl_alloc_texture_object
  104.     add.w    #$C,a7
  105.     lea    $10(a2),a0
  106.     move.l    d0,0(a0,d2.l*4)
  107. ;      ss->Default2D[i] = gl_alloc_texture_object(ss, 0, 2);
  108.     pea    2.w
  109.     clr.l    -(a7)
  110.     move.l    a2,-(a7)
  111.     jsr    _gl_alloc_texture_object
  112.     add.w    #$C,a7
  113.     lea    $18(a2),a0
  114.     move.l    d0,0(a0,d2.l*4)
  115. ;      ss->Default3D[i] = gl_alloc_texture_object(ss, 0, 3);
  116.     pea    3.w
  117.     clr.l    -(a7)
  118.     move.l    a2,-(a7)
  119.     jsr    _gl_alloc_texture_object
  120.     add.w    #$C,a7
  121.     lea    $20(a2),a0
  122.     move.l    d0,0(a0,d2.l*4)
  123. ;      if (!ss->Default1D[i] || !ss->Default2D[i] || !ss->Defau
  124.     lea    $10(a2),a0
  125.     tst.l    0(a0,d2.l*4)
  126.     beq.b    L273
  127. L271
  128.     lea    $18(a2),a0
  129.     tst.l    0(a0,d2.l*4)
  130.     beq.b    L273
  131. L272
  132.     lea    $20(a2),a0
  133.     tst.l    0(a0,d2.l*4)
  134.     bne.b    L274
  135. L273
  136. ;         outOfMemory = GL_TRUE;
  137.     moveq    #1,d3
  138. ;         
  139.     bra.b    L276
  140. L274
  141.     addq.l    #1,d2
  142. L275
  143.     cmp.l    #2,d2
  144.     blo.b    L270
  145. L276
  146. ;   if (!ss->DisplayList || !ss->TexObjects || outOfMemory) 
  147.     tst.l    4(a2)
  148.     beq.b    L279
  149. L277
  150.     tst.l    $8(a2)
  151.     beq.b    L279
  152. L278
  153.     tst.b    d3
  154.     beq    L293
  155. L279
  156. ;      if (!ss->DisplayList)
  157.     tst.l    4(a2)
  158.     bne.b    L281
  159. L280
  160. ;         DeleteHashTable(ss->DisplayList);
  161.     move.l    4(a2),-(a7)
  162.     jsr    _DeleteHashTable
  163.     addq.w    #4,a7
  164. L281
  165. ;      if (!ss->TexObjects)
  166.     tst.l    $8(a2)
  167.     bne.b    L283
  168. L282
  169. ;         DeleteHashTable(ss->TexObjects);
  170.     move.l    $8(a2),-(a7)
  171.     jsr    _DeleteHashTable
  172.     addq.w    #4,a7
  173. L283
  174. ;      for (i=0;
  175.     moveq    #0,d2
  176.     bra.b    L291
  177. L284
  178. ;         if (!ss->Default1D[i])
  179.     lea    $10(a2),a0
  180.     tst.l    0(a0,d2.l*4)
  181.     bne.b    L286
  182. L285
  183. ;            gl_free_texture_object(ss, ss->Default1D[i]);
  184.     lea    $10(a2),a0
  185.     move.l    0(a0,d2.l*4),-(a7)
  186.     move.l    a2,-(a7)
  187.     jsr    _gl_free_texture_object
  188.     addq.w    #$8,a7
  189. L286
  190. ;         if (!ss->Default2D[i])
  191.     lea    $18(a2),a0
  192.     tst.l    0(a0,d2.l*4)
  193.     bne.b    L288
  194. L287
  195. ;            gl_free_texture_object(ss, ss->Default2D[i]);
  196.     lea    $18(a2),a0
  197.     move.l    0(a0,d2.l*4),-(a7)
  198.     move.l    a2,-(a7)
  199.     jsr    _gl_free_texture_object
  200.     addq.w    #$8,a7
  201. L288
  202. ;   s->GenModeR = GL_EYE_LINEAR;
  203.     lea    $20(a2),a0
  204.     tst.l    0(a0,d2.l*4)
  205.     bne.b    L290
  206. L289
  207. ;            gl_free_texture_object(ss, ss->Default3D[i]);
  208.     lea    $20(a2),a0
  209.     move.l    0(a0,d2.l*4),-(a7)
  210.     move.l    a2,-(a7)
  211.     jsr    _gl_free_texture_object
  212.     addq.w    #$8,a7
  213. L290
  214.     addq.l    #1,d2
  215. L291
  216.     cmp.l    #2,d2
  217.     blo.b    L284
  218. L292
  219. ;      free(ss);
  220.     move.l    a2,-(a7)
  221.     jsr    _free
  222.     addq.w    #4,a7
  223.     moveq    #0,d0
  224.     movem.l    (a7)+,d2/d3/a2
  225.     rts
  226. L293
  227.     move.l    a2,d0
  228.     movem.l    (a7)+,d2/d3/a2
  229.     rts
  230.  
  231.     SECTION "_free_shared_state:0",CODE
  232.  
  233.  
  234. ;static void free_shared_state( GLcontext *ctx, struct gl_shared_stat
  235. _free_shared_state
  236.     movem.l    a2/a3,-(a7)
  237.     move.l    $10(a7),a2
  238.     move.l    $C(a7),a3
  239. L294
  240. ;   while (1) 
  241.     bra.b    L298
  242. L295
  243. ;      GLuint list = HashFirstEntry(ss->DisplayList);
  244.     move.l    4(a2),-(a7)
  245.     jsr    _HashFirstEntry
  246.     addq.w    #4,a7
  247. ;      if (list) 
  248.     tst.l    d0
  249.     beq.b    L297
  250. L296
  251. ;         gl_destroy_list(ctx, list);
  252.     move.l    d0,-(a7)
  253.     move.l    a3,-(a7)
  254.     jsr    _gl_destroy_list
  255.     addq.w    #$8,a7
  256.     bra.b    L298
  257. L297
  258. ;         
  259.     bra.b    L299
  260. L298
  261.     bra.b    L295
  262. L299
  263. ;   DeleteHashTable(ss->DisplayList);
  264.     move.l    4(a2),-(a7)
  265.     jsr    _DeleteHashTable
  266.     addq.w    #4,a7
  267. ;   while (ss->TexObjectList)
  268.     bra.b    L301
  269. L300
  270. ;      gl_free_texture_object(ss, ss->TexObjectList);
  271.     move.l    $C(a2),-(a7)
  272.     move.l    a2,-(a7)
  273.     jsr    _gl_free_texture_object
  274.     addq.w    #$8,a7
  275. L301
  276.     tst.l    $C(a2)
  277.     bne.b    L300
  278. L302
  279. ;   DeleteHashTable(ss->TexObjects);
  280.     move.l    $8(a2),-(a7)
  281.     jsr    _DeleteHashTable
  282.     addq.w    #4,a7
  283. ;   free(ss);
  284.     move.l    a2,-(a7)
  285.     jsr    _free
  286.     addq.w    #4,a7
  287.     movem.l    (a7)+,a2/a3
  288.     rts
  289.  
  290.     SECTION "_init_light:0",CODE
  291.  
  292.  
  293. ;static void init_light( struct gl_light *l, GLuint n )
  294. _init_light
  295.     move.l    a2,-(a7)
  296.     move.l    $C(a7),d0
  297.     move.l    $8(a7),a2
  298. L303
  299. ;   ASSIGN_4V( l->Ambien
  300.     clr.l    (a2)
  301. ;   ASSIGN_4V( l->Ambien
  302.     clr.l    4(a2)
  303. ;   ASSIGN_4V( l->Ambien
  304.     clr.l    $8(a2)
  305. ;   ASSIGN_4V( l->Ambien
  306.     move.l    #$3F800000,$C(a2)
  307. ;   if (n==0) 
  308.     tst.l    d0
  309.     bne.b    L305
  310. L304
  311. ;      ASSIGN_4V( l->
  312.     move.l    #$3F800000,$10(a2)
  313. ;      ASSIGN_4V( l->
  314.     lea    $10(a2),a0
  315.     move.l    #$3F800000,4(a0)
  316. ;      ASSIGN_4V( l->
  317.     lea    $10(a2),a0
  318.     move.l    #$3F800000,$8(a0)
  319. ;      ASSIGN_4V( l->
  320.     lea    $10(a2),a0
  321.     move.l    #$3F800000,$C(a0)
  322. ;      ASSIGN_4V( l-
  323.     move.l    #$3F800000,$20(a2)
  324. ;      ASSIGN_4V( l-
  325.     lea    $20(a2),a0
  326.     move.l    #$3F800000,4(a0)
  327. ;      ASSIGN_4V( l-
  328.     lea    $20(a2),a0
  329.     move.l    #$3F800000,$8(a0)
  330. ;      ASSIGN_4V( l-
  331.     lea    $20(a2),a0
  332.     move.l    #$3F800000,$C(a0)
  333.     bra.b    L306
  334. L305
  335. ;      ASSIGN_4V( l->
  336.     clr.l    $10(a2)
  337. ;      ASSIGN_4V( l->
  338.     lea    $10(a2),a0
  339.     clr.l    4(a0)
  340. ;      ASSIGN_4V( l->
  341.     lea    $10(a2),a0
  342.     clr.l    $8(a0)
  343. ;      ASSIGN_4V( l->
  344.     lea    $10(a2),a0
  345.     move.l    #$3F800000,$C(a0)
  346. ;      ASSIGN_4V( l-
  347.     clr.l    $20(a2)
  348. ;      ASSIGN_4V( l-
  349.     lea    $20(a2),a0
  350.     clr.l    4(a0)
  351. ;      ASSIGN_4V( l-
  352.     lea    $20(a2),a0
  353.     clr.l    $8(a0)
  354. ;      ASSIGN_4V( l-
  355.     lea    $20(a2),a0
  356.     move.l    #$3F800000,$C(a0)
  357. L306
  358. ;   ASSIGN_4V( l->Posit
  359.     clr.l    $30(a2)
  360. ;   ASSIGN_4V( l->Posit
  361.     lea    $30(a2),a0
  362.     clr.l    4(a0)
  363. ;   ASSIGN_4V( l->Posit
  364.     lea    $30(a2),a0
  365.     move.l    #$3F800000,$8(a0)
  366. ;   ASSIGN_4V( l->Posit
  367.     lea    $30(a2),a0
  368.     clr.l    $C(a0)
  369. ;   ASSIGN_3V( l->Directio
  370.     clr.l    $40(a2)
  371. ;   ASSIGN_3V( l->Directio
  372.     lea    $40(a2),a0
  373.     clr.l    4(a0)
  374. ;   ASSIGN_3V( l->Directio
  375.     lea    $40(a2),a0
  376.     move.l    #$BF800000,$8(a0)
  377. ;   l->SpotExponent = 0.0;
  378.     clr.l    $50(a2)
  379. ;   gl_compute_spot_exp_table( l );
  380.     move.l    a2,-(a7)
  381.     jsr    _gl_compute_spot_exp_table
  382.     addq.w    #4,a7
  383. ;   l->SpotCutoff = 180.0;
  384.     move.l    #$43340000,$54(a2)
  385. ;   l->CosCutoff = -1.0;
  386.     move.l    #$BF800000,$58(a2)
  387. ;   l->ConstantAttenuation = 1.0;
  388.     move.l    #$3F800000,$5C(a2)
  389. ;   l->LinearAttenuation = 0.0;
  390.     clr.l    $60(a2)
  391. ;   l->QuadraticAttenuation = 0.0;
  392.     clr.l    $64(a2)
  393. ;   l->Enabled = GL_FALSE;
  394.     clr.b    $68(a2)
  395.     move.l    (a7)+,a2
  396.     rts
  397.  
  398.     SECTION "_init_lightmodel:0",CODE
  399.  
  400.  
  401. ;static void init_lightmodel( struct gl_lightmodel *lm )
  402. _init_lightmodel
  403.     move.l    4(a7),a0
  404. L307
  405. ;   ASSIGN_4V( lm->Ambi
  406.     move.l    #$3E4CCCCC,(a0)
  407. ;   ASSIGN_4V( lm->Ambi
  408.     move.l    #$3E4CCCCC,4(a0)
  409. ;   ASSIGN_4V( lm->Ambi
  410.     move.l    #$3E4CCCCC,$8(a0)
  411. ;   ASSIGN_4V( lm->Ambi
  412.     move.l    #$3F800000,$C(a0)
  413. ;   lm->LocalViewer = GL_FALSE;
  414.     clr.b    $10(a0)
  415. ;   lm->TwoSide = GL_FALSE;
  416.     clr.b    $11(a0)
  417. ;   lm->ColorControl = GL_SINGLE_COLOR;
  418.     move.l    #$81F9,$12(a0)
  419.     rts
  420.  
  421.     SECTION "_init_material:0",CODE
  422.  
  423.  
  424. ;static void init_material( struct gl_material *m )
  425. _init_material
  426.     move.l    4(a7),a0
  427. L308
  428. ;   ASSIGN_4V( m->Ambie
  429.     move.l    #$3E4CCCCC,(a0)
  430. ;   ASSIGN_4V( m->Ambie
  431.     move.l    #$3E4CCCCC,4(a0)
  432. ;   ASSIGN_4V( m->Ambie
  433.     move.l    #$3E4CCCCC,$8(a0)
  434. ;   ASSIGN_4V( m->Ambie
  435.     move.l    #$3F800000,$C(a0)
  436. ;   ASSIGN_4V( m->Diffu
  437.     move.l    #$3F4CCCCC,$10(a0)
  438. ;   ASSIGN_4V( m->Diffu
  439.     lea    $10(a0),a1
  440.     move.l    #$3F4CCCCC,4(a1)
  441. ;   ASSIGN_4V( m->Diffu
  442.     lea    $10(a0),a1
  443.     move.l    #$3F4CCCCC,$8(a1)
  444. ;   ASSIGN_4V( m->Diffu
  445.     lea    $10(a0),a1
  446.     move.l    #$3F800000,$C(a1)
  447. ;   ASSIGN_4V( m->Specu
  448.     clr.l    $20(a0)
  449. ;   ASSIGN_4V( m->Specu
  450.     lea    $20(a0),a1
  451.     clr.l    4(a1)
  452. ;   ASSIGN_4V( m->Specu
  453.     lea    $20(a0),a1
  454.     clr.l    $8(a1)
  455. ;   ASSIGN_4V( m->Specu
  456.     lea    $20(a0),a1
  457.     move.l    #$3F800000,$C(a1)
  458. ;   ASSIGN_4V( m->Emiss
  459.     clr.l    $30(a0)
  460. ;   ASSIGN_4V( m->Emiss
  461.     lea    $30(a0),a1
  462.     clr.l    4(a1)
  463. ;   ASSIGN_4V( m->Emiss
  464.     lea    $30(a0),a1
  465.     clr.l    $8(a1)
  466. ;   ASSIGN_4V( m->Emiss
  467.     lea    $30(a0),a1
  468.     move.l    #$3F800000,$C(a1)
  469. ;   m->Shininess = 0.0;
  470.     clr.l    $40(a0)
  471. ;   m->AmbientIndex = 0;
  472.     clr.l    $44(a0)
  473. ;   m->DiffuseIndex = 1;
  474.     move.l    #$3F800000,$48(a0)
  475. ;   m->SpecularIndex = 1;
  476.     move.l    #$3F800000,$4C(a0)
  477. ;   gl_compute_material_shine_table( m );
  478.     move.l    a0,-(a7)
  479.     jsr    _gl_compute_material_shine_table
  480.     addq.w    #4,a7
  481.     rts
  482.  
  483.     SECTION "_init_texture_set:0",CODE
  484.  
  485.  
  486. ;static void init_texture_set( GLcontext *ctx, GLuint setNum )
  487. _init_texture_set
  488.     move.l    a2,-(a7)
  489.     move.l    $C(a7),d0
  490.     move.l    $8(a7),a1
  491. L309
  492. ;   struct gl_texture_set *s = &ctx->Texture.Set[setNum];
  493.     move.l    a1,a0
  494.     add.l    #$DEC6,a0
  495.     move.l    d0,d1
  496.     muls.l    #$BC,d1
  497.     add.l    d1,a0
  498. ;   s->EnvMode = GL_MODULATE;
  499.     move.l    #$2100,(a0)
  500. ;   ASSIGN_4V( s->EnvCo
  501.     clr.l    4(a0)
  502. ;   ASSIGN_4V( s->EnvCo
  503.     lea    4(a0),a2
  504.     clr.l    4(a2)
  505. ;   ASSIGN_4V( s->EnvCo
  506.     lea    4(a0),a2
  507.     clr.l    $8(a2)
  508. ;   ASSIGN_4V( s->EnvCo
  509.     lea    4(a0),a2
  510.     clr.l    $C(a2)
  511. ;   s->TexGenEnabled = 0;
  512.     clr.l    $14(a0)
  513. ;   s->GenModeS = GL_EYE_LINEAR;
  514.     move.l    #$2400,$18(a0)
  515. ;   s->GenModeT = GL_EYE_LINEAR;
  516.     move.l    #$2400,$1C(a0)
  517. ;   s->GenModeR = GL_EYE_LINEAR;
  518.     move.l    #$2400,$20(a0)
  519. ;   s->GenModeQ = GL_EYE_LINEAR;
  520.     move.l    #$2400,$24(a0)
  521. ;   ASSIGN_4V( s->O
  522.     move.l    #$3F800000,$28(a0)
  523. ;   ASSIGN_4V( s->O
  524.     lea    $28(a0),a2
  525.     clr.l    4(a2)
  526. ;   ASSIGN_4V( s->O
  527.     lea    $28(a0),a2
  528.     clr.l    $8(a2)
  529. ;   ASSIGN_4V( s->O
  530.     lea    $28(a0),a2
  531.     clr.l    $C(a2)
  532. ;   ASSIGN_4V( s->O
  533.     clr.l    $38(a0)
  534. ;   ASSIGN_4V( s->O
  535.     lea    $38(a0),a2
  536.     move.l    #$3F800000,4(a2)
  537. ;   ASSIGN_4V( s->O
  538.     lea    $38(a0),a2
  539.     clr.l    $8(a2)
  540. ;   ASSIGN_4V( s->O
  541.     lea    $38(a0),a2
  542.     clr.l    $C(a2)
  543. ;   ASSIGN_4V( s->O
  544.     clr.l    $48(a0)
  545. ;   ASSIGN_4V( s->O
  546.     lea    $48(a0),a2
  547.     clr.l    4(a2)
  548. ;   ASSIGN_4V( s->O
  549.     lea    $48(a0),a2
  550.     clr.l    $8(a2)
  551. ;   ASSIGN_4V( s->O
  552.     lea    $48(a0),a2
  553.     clr.l    $C(a2)
  554. ;   ASSIGN_4V( s->O
  555.     clr.l    $58(a0)
  556. ;   ASSIGN_4V( s->O
  557.     lea    $58(a0),a2
  558.     clr.l    4(a2)
  559. ;   ASSIGN_4V( s->O
  560.     lea    $58(a0),a2
  561.     clr.l    $8(a2)
  562. ;   ASSIGN_4V( s->O
  563.     lea    $58(a0),a2
  564.     clr.l    $C(a2)
  565. ;   ASSIGN_4V( s->EyeP
  566.     move.l    #$3F800000,$68(a0)
  567. ;   ASSIGN_4V( s->EyeP
  568.     lea    $68(a0),a2
  569.     clr.l    4(a2)
  570. ;   ASSIGN_4V( s->EyeP
  571.     lea    $68(a0),a2
  572.     clr.l    $8(a2)
  573. ;   ASSIGN_4V( s->EyeP
  574.     lea    $68(a0),a2
  575.     clr.l    $C(a2)
  576. ;   ASSIGN_4V( s->EyeP
  577.     clr.l    $78(a0)
  578. ;   ASSIGN_4V( s->EyeP
  579.     lea    $78(a0),a2
  580.     move.l    #$3F800000,4(a2)
  581. ;   ASSIGN_4V( s->EyeP
  582.     lea    $78(a0),a2
  583.     clr.l    $8(a2)
  584. ;   ASSIGN_4V( s->EyeP
  585.     lea    $78(a0),a2
  586.     clr.l    $C(a2)
  587. ;   ASSIGN_4V( s->EyeP
  588.     clr.l    $88(a0)
  589. ;   ASSIGN_4V( s->EyeP
  590.     lea    $88(a0),a2
  591.     clr.l    4(a2)
  592. ;   ASSIGN_4V( s->EyeP
  593.     lea    $88(a0),a2
  594.     clr.l    $8(a2)
  595. ;   ASSIGN_4V( s->EyeP
  596.     lea    $88(a0),a2
  597.     clr.l    $C(a2)
  598. ;   ASSIGN_4V( s->EyeP
  599.     clr.l    $98(a0)
  600. ;   ASSIGN_4V( s->EyeP
  601.     lea    $98(a0),a2
  602.     clr.l    4(a2)
  603. ;   ASSIGN_4V( s->EyeP
  604.     lea    $98(a0),a2
  605.     clr.l    $8(a2)
  606. ;   ASSIGN_4V( s->EyeP
  607.     lea    $98(a0),a2
  608.     clr.l    $C(a2)
  609. ;   s->Current1D = ctx->Shared->Default1D[setNum];
  610.     move.l    (a1),a2
  611.     lea    $10(a2),a2
  612.     move.l    0(a2,d0.l*4),$A8(a0)
  613. ;   s->Current2D = ctx->Shared->Default2D[setNum];
  614.     move.l    (a1),a2
  615.     lea    $18(a2),a2
  616.     move.l    0(a2,d0.l*4),$AC(a0)
  617. ;   s->Current3D = ctx->Shared->Default3D[setNum];
  618.     move.l    (a1),a1
  619.     lea    $20(a1),a1
  620.     move.l    0(a1,d0.l*4),$B0(a0)
  621. ;   s->TexCoordSet = setNum;
  622.     move.l    d0,$B8(a0)
  623.     move.l    (a7)+,a2
  624.     rts
  625.  
  626.     SECTION "_init_1d_map:0",CODE
  627.  
  628.  
  629. ;static void init_1d_map( struct gl_1d_map *map, int n, const float *
  630. _init_1d_map
  631.     movem.l    d2/a2/a3,-(a7)
  632.     movem.l    $14(a7),d2/a3
  633.     move.l    $10(a7),a2
  634. L310
  635. ;   map->Order = 1;
  636.     move.l    #1,(a2)
  637. ;   map->u1 = 0.0;
  638.     clr.l    4(a2)
  639. ;   map->u2 = 1.0;
  640.     move.l    #$3F800000,$8(a2)
  641. ;   map->Points = malloc(n * sizeof(GLfloat));
  642.     move.l    d2,d0
  643.     moveq    #2,d1
  644.     asl.l    d1,d0
  645.     move.l    d0,-(a7)
  646.     jsr    _malloc
  647.     addq.w    #4,a7
  648.     move.l    d0,$C(a2)
  649. ;   if (map->Points) 
  650.     tst.l    $C(a2)
  651.     beq.b    L314
  652. L311
  653. ;      for (i=0;
  654.     moveq    #0,d0
  655.     bra.b    L313
  656. L312
  657. ;         map->Points[i] = initial[i];
  658.     move.l    $C(a2),a0
  659.     move.l    0(a3,d0.l*4),0(a0,d0.l*4)
  660.     addq.l    #1,d0
  661. L313
  662.     cmp.l    d2,d0
  663.     blt.b    L312
  664. L314
  665. ;   map->Retain = GL_FALSE;
  666.     clr.b    $10(a2)
  667.     movem.l    (a7)+,d2/a2/a3
  668.     rts
  669.  
  670.     SECTION "_init_2d_map:0",CODE
  671.  
  672.  
  673. ;static void init_2d_map( struct gl_2d_map *map, int n, const float *
  674. _init_2d_map
  675.     movem.l    d2/a2/a3,-(a7)
  676.     movem.l    $14(a7),d2/a3
  677.     move.l    $10(a7),a2
  678. L315
  679. ;   map->Uorder = 1;
  680.     move.l    #1,(a2)
  681. ;   map->Vorder = 1;
  682.     move.l    #1,4(a2)
  683. ;   map->u1 = 0.0;
  684.     clr.l    $8(a2)
  685. ;   map->u2 = 1.0;
  686.     move.l    #$3F800000,$C(a2)
  687. ;   map->v1 = 0.0;
  688.     clr.l    $10(a2)
  689. ;   map->v2 = 1.0;
  690.     move.l    #$3F800000,$14(a2)
  691. ;   map->Points = malloc(n * sizeof(GLfloat));
  692.     move.l    d2,d0
  693.     moveq    #2,d1
  694.     asl.l    d1,d0
  695.     move.l    d0,-(a7)
  696.     jsr    _malloc
  697.     addq.w    #4,a7
  698.     move.l    d0,$18(a2)
  699. ;   if (map->Points) 
  700.     tst.l    $18(a2)
  701.     beq.b    L319
  702. L316
  703. ;      for (i=0;
  704.     moveq    #0,d0
  705.     bra.b    L318
  706. L317
  707. ;         map->Points[i] = initial[i];
  708.     move.l    $18(a2),a0
  709.     move.l    0(a3,d0.l*4),0(a0,d0.l*4)
  710.     addq.l    #1,d0
  711. L318
  712.     cmp.l    d2,d0
  713.     blt.b    L317
  714. L319
  715. ;   map->Retain = GL_FALSE;
  716.     clr.b    $1C(a2)
  717.     movem.l    (a7)+,d2/a2/a3
  718.     rts
  719.  
  720.     SECTION "_initialize_context:0",CODE
  721.  
  722.  
  723. ;static void initialize_context( GLcontext *ctx )
  724. _initialize_context
  725.     movem.l    d2/a2,-(a7)
  726.     move.l    $C(a7),a2
  727. L324
  728. ;   if (ctx) 
  729.     cmp.w    #0,a2
  730.     beq    L356
  731. L325
  732. ;      ctx->NewModelViewMatrix = GL_FALSE;
  733.     clr.b    $9F4(a2)
  734. ;      ctx->ModelViewMatrixType = MATRIX_IDENTITY;
  735.     move.l    #1,$9F6(a2)
  736. ;ctx->ModelViewMat
  737.     pea    $40.w
  738.     pea    _identity___initialize_context(a6)
  739.     pea    $9FA(a2)
  740.     jsr    _q_memcpy
  741.     add.w    #$C,a7
  742. ;Y( ctx->ModelView
  743.     pea    $40.w
  744.     pea    _identity___initialize_context(a6)
  745.     pea    $A3A(a2)
  746.     jsr    _q_memcpy
  747.     add.w    #$C,a7
  748. ;      ctx->ModelViewStackDepth = 0;
  749.     clr.l    $A7A(a2)
  750. ;      ctx->NewProjectionMatrix = GL_FALSE;
  751.     clr.b    $127E(a2)
  752. ;      ctx->ProjectionMatrixType = MATRIX_IDENTITY;
  753.     move.l    #1,$1280(a2)
  754. ;tx->ProjectionMat
  755.     pea    $40.w
  756.     pea    _identity___initialize_context(a6)
  757.     pea    $1284(a2)
  758.     jsr    _q_memcpy
  759.     add.w    #$C,a7
  760. ;      ctx->ProjectionStackDepth = 0;
  761.     clr.l    $12C4(a2)
  762. ;      ctx->NearFarStack[0][0] = 1.0;
  763.     move.l    #$3F800000,$1AC8(a2)
  764. ;      ctx->NearFarStack[0][1] = 0.0;
  765.     lea    $1AC8(a2),a0
  766.     clr.l    4(a0)
  767. ;      for (i=0;
  768.     moveq    #0,d2
  769.     bra.b    L327
  770. L326
  771. ;         ctx->NewTextureMatrix = GL_FALSE;
  772.     clr.b    $1BC8(a2)
  773. ;         ctx->TextureMatrixType[i] = MATRIX_IDENTITY;
  774.     lea    $1BCA(a2),a0
  775.     move.l    #1,0(a0,d2.l*4)
  776. ;tx->TextureMatrix
  777.     pea    $40.w
  778.     pea    _identity___initialize_context(a6)
  779.     lea    $1BD2(a2),a0
  780.     move.l    d2,d0
  781.     asl.l    #6,d0
  782.     pea    0(a0,d0.l)
  783.     jsr    _q_memcpy
  784.     add.w    #$C,a7
  785. ;         ctx->TextureStackDepth[i] = 0;
  786.     lea    $1C52(a2),a0
  787.     clr.l    0(a0,d2.l*4)
  788.     addq.l    #1,d2
  789. L327
  790.     cmp.l    #2,d2
  791.     blo.b    L326
  792. L328
  793. ;SIGN_4V( ctx->Acc
  794.     clr.l    $21B4(a2)
  795. ;SIGN_4V( ctx->Acc
  796.     lea    $21B4(a2),a0
  797.     clr.l    4(a0)
  798. ;SIGN_4V( ctx->Acc
  799.     lea    $21B4(a2),a0
  800.     clr.l    $8(a0)
  801. ;SIGN_4V( ctx->Acc
  802.     lea    $21B4(a2),a0
  803.     clr.l    $C(a0)
  804. ;      ctx->Color.IndexMask = 0xffffffff;
  805.     move.l    #-1,$21D8(a2)
  806. ;      ctx->Color.ColorMask[0] = 0xff;
  807.     move.b    #$FF,$21DC(a2)
  808. ;      ctx->Color.ColorMask[1] = 0xff;
  809.     lea    $21DC(a2),a0
  810.     move.b    #$FF,1(a0)
  811. ;      ctx->Color.ColorMask[2] = 0xff;
  812.     lea    $21DC(a2),a0
  813.     move.b    #$FF,2(a0)
  814. ;      ctx->Color.ColorMask[3] = 0xff;
  815.     lea    $21DC(a2),a0
  816.     move.b    #$FF,3(a0)
  817. ;      ctx->Color.SWmasking = GL_FALSE;
  818.     clr.b    $21E0(a2)
  819. ;      ctx->Color.ClearIndex = 0;
  820.     clr.l    $21C4(a2)
  821. ;SIGN_4V( ctx->Col
  822.     clr.l    $21C8(a2)
  823. ;SIGN_4V( ctx->Col
  824.     lea    $21C8(a2),a0
  825.     clr.l    4(a0)
  826. ;SIGN_4V( ctx->Col
  827.     lea    $21C8(a2),a0
  828.     clr.l    $8(a0)
  829. ;SIGN_4V( ctx->Col
  830.     lea    $21C8(a2),a0
  831.     clr.l    $C(a0)
  832. ;      ctx->Color.DrawBuffer = GL_FRONT;
  833.     move.l    #$404,$21E2(a2)
  834. ;      ctx->Color.AlphaEnabled = GL_FALSE;
  835.     clr.b    $21E6(a2)
  836. ;      ctx->Color.AlphaFunc = GL_ALWAYS;
  837.     move.l    #$207,$21E8(a2)
  838. ;      ctx->Color.AlphaRef = 0;
  839.     clr.b    $21EC(a2)
  840. ;      ctx->Color.BlendEnabled = GL_FALSE;
  841.     clr.b    $21ED(a2)
  842. ;      ctx->Color.BlendSrc = GL_ONE;
  843.     move.l    #1,$21EE(a2)
  844. ;      ctx->Color.BlendDst = GL_ZERO;
  845.     clr.l    $21F2(a2)
  846. ;      ctx->Color.BlendEquation = GL_FUNC_ADD_EXT;
  847.     move.l    #$8006,$21F6(a2)
  848. ;      ctx->Color.BlendFunc = NULL;
  849.     clr.l    $220A(a2)
  850. ;SIGN_4V( ctx->Col
  851.     clr.l    $21FA(a2)
  852. ;SIGN_4V( ctx->Col
  853.     lea    $21FA(a2),a0
  854.     clr.l    4(a0)
  855. ;SIGN_4V( ctx->Col
  856.     lea    $21FA(a2),a0
  857.     clr.l    $8(a0)
  858. ;SIGN_4V( ctx->Col
  859.     lea    $21FA(a2),a0
  860.     clr.l    $C(a0)
  861. ;      ctx->Color.IndexLogicOpEnabled = GL_FALSE;
  862.     clr.b    $2212(a2)
  863. ;      ctx->Color.ColorLogicOpEnabled = GL_FALSE;
  864.     clr.b    $2213(a2)
  865. ;      ctx->Color.SWLogicOpEnabled = GL_FALSE;
  866.     clr.b    $2214(a2)
  867. ;      ctx->Color.LogicOp = GL_COPY;
  868.     move.l    #$1503,$220E(a2)
  869. ;      ctx->Color.DitherFlag = GL_TRUE;
  870.     move.b    #1,$2215(a2)
  871. ;IGN_4V( ctx->Curr
  872.     move.b    #$FF,$2216(a2)
  873. ;IGN_4V( ctx->Curr
  874.     lea    $2216(a2),a0
  875.     move.b    #$FF,1(a0)
  876. ;IGN_4V( ctx->Curr
  877.     lea    $2216(a2),a0
  878.     move.b    #$FF,2(a0)
  879. ;IGN_4V( ctx->Curr
  880.     lea    $2216(a2),a0
  881.     move.b    #$FF,3(a0)
  882. ;      ctx->Current.Index = 1;
  883.     move.l    #1,$221A(a2)
  884. ;     ASSIGN_3V( c
  885.     clr.l    $221E(a2)
  886. ;     ASSIGN_3V( c
  887.     lea    $221E(a2),a0
  888.     clr.l    4(a0)
  889. ;     ASSIGN_3V( c
  890.     lea    $221E(a2),a0
  891.     move.l    #$3F800000,$8(a0)
  892. ;      for (i=0;
  893.     moveq    #0,d2
  894.     bra.b    L330
  895. L329
  896. ; ctx->Current.Mul
  897.     lea    $222E(a2),a0
  898.     move.l    d2,d0
  899.     asl.l    #4,d0
  900.     clr.l    0(a0,d0.l)
  901. ; ctx->Current.Mul
  902.     lea    $222E(a2),a0
  903.     move.l    d2,d0
  904.     asl.l    #4,d0
  905.     lea    0(a0,d0.l),a0
  906.     clr.l    4(a0)
  907. ; ctx->Current.Mul
  908.     lea    $222E(a2),a0
  909.     move.l    d2,d0
  910.     asl.l    #4,d0
  911.     lea    0(a0,d0.l),a0
  912.     clr.l    $8(a0)
  913. ; ctx->Current.Mul
  914.     lea    $222E(a2),a0
  915.     move.l    d2,d0
  916.     asl.l    #4,d0
  917.     lea    0(a0,d0.l),a0
  918.     move.l    #$3F800000,$C(a0)
  919.     addq.l    #1,d2
  920. L330
  921.     cmp.l    #2,d2
  922.     blo.b    L329
  923. L331
  924. ;      ctx->Current.TexCoord = ctx->Current.MultiTexCoord[0];
  925.     lea    $222E(a2),a0
  926.     move.l    a0,$222A(a2)
  927. ;IGN_4V( ctx->Curr
  928.     clr.l    $224E(a2)
  929. ;IGN_4V( ctx->Curr
  930.     lea    $224E(a2),a0
  931.     clr.l    4(a0)
  932. ;IGN_4V( ctx->Curr
  933.     lea    $224E(a2),a0
  934.     clr.l    $8(a0)
  935. ;IGN_4V( ctx->Curr
  936.     lea    $224E(a2),a0
  937.     move.l    #$3F800000,$C(a0)
  938. ;      ctx->Current.RasterDistance = 0.0;
  939.     clr.l    $225E(a2)
  940. ;N_4V( ctx->Curren
  941.     move.l    #$3F800000,$2262(a2)
  942. ;N_4V( ctx->Curren
  943.     lea    $2262(a2),a0
  944.     move.l    #$3F800000,4(a0)
  945. ;N_4V( ctx->Curren
  946.     lea    $2262(a2),a0
  947.     move.l    #$3F800000,$8(a0)
  948. ;N_4V( ctx->Curren
  949.     lea    $2262(a2),a0
  950.     move.l    #$3F800000,$C(a0)
  951. ;      ctx->Current.RasterIndex = 1;
  952.     move.l    #1,$2272(a2)
  953. ;      for (i=0;
  954.     moveq    #0,d2
  955.     bra.b    L333
  956. L332
  957. ;Current.RasterMul
  958.     lea    $227A(a2),a0
  959.     move.l    d2,d0
  960.     asl.l    #4,d0
  961.     clr.l    0(a0,d0.l)
  962. ;Current.RasterMul
  963.     lea    $227A(a2),a0
  964.     move.l    d2,d0
  965.     asl.l    #4,d0
  966.     lea    0(a0,d0.l),a0
  967.     clr.l    4(a0)
  968. ;Current.RasterMul
  969.     lea    $227A(a2),a0
  970.     move.l    d2,d0
  971.     asl.l    #4,d0
  972.     lea    0(a0,d0.l),a0
  973.     clr.l    $8(a0)
  974. ;Current.RasterMul
  975.     lea    $227A(a2),a0
  976.     move.l    d2,d0
  977.     asl.l    #4,d0
  978.     lea    0(a0,d0.l),a0
  979.     move.l    #$3F800000,$C(a0)
  980.     addq.l    #1,d2
  981. L333
  982.     cmp.l    #2,d2
  983.     blo.b    L332
  984. L334
  985. ;      ctx->Current.RasterTexCoord = ctx->Current.RasterMultiTe
  986.     lea    $227A(a2),a0
  987.     move.l    a0,$2276(a2)
  988. ;      ctx->Current.RasterPosValid = GL_TRUE;
  989.     move.b    #1,$229A(a2)
  990. ;      ctx->Current.EdgeFlag = GL_TRUE;
  991.     move.b    #1,$229B(a2)
  992. ;      ctx->Depth.Test = GL_FALSE;
  993.     clr.b    $22A4(a2)
  994. ;      ctx->Depth.Clear = 1.0;
  995.     move.l    #$3F800000,$22A0(a2)
  996. ;      ctx->Depth.Func = GL_LESS;
  997.     move.l    #$201,$229C(a2)
  998. ;      ctx->Depth.Mask = GL_TRUE;
  999.     move.b    #1,$22A5(a2)
  1000. ;      ctx->Eval.Map1Color4 = GL_FALSE;
  1001.     clr.b    $22A6(a2)
  1002. ;      ctx->Eval.Map1Index = GL_FALSE;
  1003.     clr.b    $22A7(a2)
  1004. ;      ctx->Eval.Map1Normal = GL_FALSE;
  1005.     clr.b    $22A8(a2)
  1006. ;      ctx->Eval.Map1TextureCoord1 = GL_FALSE;
  1007.     clr.b    $22A9(a2)
  1008. ;      ctx->Eval.Map1TextureCoord2 = GL_FALSE;
  1009.     clr.b    $22AA(a2)
  1010. ;      ctx->Eval.Map1TextureCoord3 = GL_FALSE;
  1011.     clr.b    $22AB(a2)
  1012. ;      ctx->Eval.Map1TextureCoord4 = GL_FALSE;
  1013.     clr.b    $22AC(a2)
  1014. ;      ctx->Eval.Map1Vertex3 = GL_FALSE;
  1015.     clr.b    $22AD(a2)
  1016. ;      ctx->Eval.Map1Vertex4 = GL_FALSE;
  1017.     clr.b    $22AE(a2)
  1018. ;      ctx->Eval.Map2Color4 = GL_FALSE;
  1019.     clr.b    $22AF(a2)
  1020. ;      ctx->Eval.Map2Index = GL_FALSE;
  1021.     clr.b    $22B0(a2)
  1022. ;      ctx->Eval.Map2Normal = GL_FALSE;
  1023.     clr.b    $22B1(a2)
  1024. ;      ctx->Eval.Map2TextureCoord1 = GL_FALSE;
  1025.     clr.b    $22B2(a2)
  1026. ;      ctx->Eval.Map2TextureCoord2 = GL_FALSE;
  1027.     clr.b    $22B3(a2)
  1028. ;      ctx->Eval.Map2TextureCoord3 = GL_FALSE;
  1029.     clr.b    $22B4(a2)
  1030. ;      ctx->Eval.Map2TextureCoord4 = GL_FALSE;
  1031.     clr.b    $22B5(a2)
  1032. ;      ctx->Eval.Map2Vertex3 = GL_FALSE;
  1033.     clr.b    $22B6(a2)
  1034. ;      ctx->Eval.Map2Vertex4 = GL_FALSE;
  1035.     clr.b    $22B7(a2)
  1036. ;      ctx->Eval.AutoNormal = GL_FALSE;
  1037.     clr.b    $22B8(a2)
  1038. ;      ctx->Eval.MapGrid1un = 1;
  1039.     move.l    #1,$22BA(a2)
  1040. ;      ctx->Eval.MapGrid1u1 = 0.0;
  1041.     clr.l    $22BE(a2)
  1042. ;      ctx->Eval.MapGrid1u2 = 1.0;
  1043.     move.l    #$3F800000,$22C2(a2)
  1044. ;      ctx->Eval.MapGrid2un = 1;
  1045.     move.l    #1,$22C6(a2)
  1046. ;      ctx->Eval.MapGrid2vn = 1;
  1047.     move.l    #1,$22CA(a2)
  1048. ;      ctx->Eval.MapGrid2u1 = 0.0;
  1049.     clr.l    $22CE(a2)
  1050. ;      ctx->Eval.MapGrid2u2 = 1.0;
  1051.     move.l    #$3F800000,$22D2(a2)
  1052. ;      ctx->Eval.MapGrid2v1 = 0.0;
  1053.     clr.l    $22D6(a2)
  1054. ;      ctx->Eval.MapGrid2v2 = 1.0;
  1055.     move.l    #$3F800000,$22DA(a2)
  1056. ;         init_1d_map( &ctx->EvalMap.Map1Vertex3, 3, vertex )
  1057.     pea    _vertex___initialize_context(a6)
  1058.     pea    3.w
  1059.     move.l    a2,a0
  1060.     add.l    #$E678,a0
  1061.     pea    (a0)
  1062.     jsr    _init_1d_map
  1063.     add.w    #$C,a7
  1064. ;         init_1d_map( &ctx->EvalMap.Map1Vertex4, 4, vertex )
  1065.     pea    _vertex___initialize_context(a6)
  1066.     pea    4.w
  1067.     move.l    a2,a0
  1068.     add.l    #$E68A,a0
  1069.     pea    (a0)
  1070.     jsr    _init_1d_map
  1071.     add.w    #$C,a7
  1072. ;         init_1d_map( &ctx->EvalMap.Map1Index, 1, index );
  1073.     pea    _index___initialize_context(a6)
  1074.     pea    1.w
  1075.     move.l    a2,a0
  1076.     add.l    #$E69C,a0
  1077.     pea    (a0)
  1078.     jsr    _init_1d_map
  1079.     add.w    #$C,a7
  1080. ;         init_1d_map( &ctx->EvalMap.Map1Color4, 4, color );
  1081.     pea    _color___initialize_context(a6)
  1082.     pea    4.w
  1083.     move.l    a2,a0
  1084.     add.l    #$E6AE,a0
  1085.     pea    (a0)
  1086.     jsr    _init_1d_map
  1087.     add.w    #$C,a7
  1088. ;         init_1d_map( &ctx->EvalMap.Map1Normal, 3, normal );
  1089.     pea    _normal___initialize_context(a6)
  1090.     pea    3.w
  1091.     move.l    a2,a0
  1092.     add.l    #$E6C0,a0
  1093.     pea    (a0)
  1094.     jsr    _init_1d_map
  1095.     add.w    #$C,a7
  1096. ;         init_1d_map( &ctx->EvalMap.Map1Texture1, 1, texcoo
  1097.     pea    _texcoord___initialize_context(a6)
  1098.     pea    1.w
  1099.     move.l    a2,a0
  1100.     add.l    #$E6D2,a0
  1101.     pea    (a0)
  1102.     jsr    _init_1d_map
  1103.     add.w    #$C,a7
  1104. ;         init_1d_map( &ctx->EvalMap.Map1Texture2, 2, texcoo
  1105.     pea    _texcoord___initialize_context(a6)
  1106.     pea    2.w
  1107.     move.l    a2,a0
  1108.     add.l    #$E6E4,a0
  1109.     pea    (a0)
  1110.     jsr    _init_1d_map
  1111.     add.w    #$C,a7
  1112. ;         init_1d_map( &ctx->EvalMap.Map1Texture3, 3, texcoo
  1113.     pea    _texcoord___initialize_context(a6)
  1114.     pea    3.w
  1115.     move.l    a2,a0
  1116.     add.l    #$E6F6,a0
  1117.     pea    (a0)
  1118.     jsr    _init_1d_map
  1119.     add.w    #$C,a7
  1120. ;         init_1d_map( &ctx->EvalMap.Map1Texture4, 4, texcoo
  1121.     pea    _texcoord___initialize_context(a6)
  1122.     pea    4.w
  1123.     move.l    a2,a0
  1124.     add.l    #$E708,a0
  1125.     pea    (a0)
  1126.     jsr    _init_1d_map
  1127.     add.w    #$C,a7
  1128. ;         init_2d_map( &ctx->EvalMap.Map2Vertex3, 3, vertex )
  1129.     pea    _vertex___initialize_context(a6)
  1130.     pea    3.w
  1131.     move.l    a2,a0
  1132.     add.l    #$E71A,a0
  1133.     pea    (a0)
  1134.     jsr    _init_2d_map
  1135.     add.w    #$C,a7
  1136. ;         init_2d_map( &ctx->EvalMap.Map2Vertex4, 4, vertex )
  1137.     pea    _vertex___initialize_context(a6)
  1138.     pea    4.w
  1139.     move.l    a2,a0
  1140.     add.l    #$E738,a0
  1141.     pea    (a0)
  1142.     jsr    _init_2d_map
  1143.     add.w    #$C,a7
  1144. ;         init_2d_map( &ctx->EvalMap.Map2Index, 1, index );
  1145.     pea    _index___initialize_context(a6)
  1146.     pea    1.w
  1147.     move.l    a2,a0
  1148.     add.l    #$E756,a0
  1149.     pea    (a0)
  1150.     jsr    _init_2d_map
  1151.     add.w    #$C,a7
  1152. ;         init_2d_map( &ctx->EvalMap.Map2Color4, 4, color );
  1153.     pea    _color___initialize_context(a6)
  1154.     pea    4.w
  1155.     move.l    a2,a0
  1156.     add.l    #$E774,a0
  1157.     pea    (a0)
  1158.     jsr    _init_2d_map
  1159.     add.w    #$C,a7
  1160. ;         init_2d_map( &ctx->EvalMap.Map2Normal, 3, normal );
  1161.     pea    _normal___initialize_context(a6)
  1162.     pea    3.w
  1163.     move.l    a2,a0
  1164.     add.l    #$E792,a0
  1165.     pea    (a0)
  1166.     jsr    _init_2d_map
  1167.     add.w    #$C,a7
  1168. ;         init_2d_map( &ctx->EvalMap.Map2Texture1, 1, texcoo
  1169.     pea    _texcoord___initialize_context(a6)
  1170.     pea    1.w
  1171.     move.l    a2,a0
  1172.     add.l    #$E7B0,a0
  1173.     pea    (a0)
  1174.     jsr    _init_2d_map
  1175.     add.w    #$C,a7
  1176. ;         init_2d_map( &ctx->EvalMap.Map2Texture2, 2, texcoo
  1177.     pea    _texcoord___initialize_context(a6)
  1178.     pea    2.w
  1179.     move.l    a2,a0
  1180.     add.l    #$E7CE,a0
  1181.     pea    (a0)
  1182.     jsr    _init_2d_map
  1183.     add.w    #$C,a7
  1184. ;         init_2d_map( &ctx->EvalMap.Map2Texture3, 3, texcoo
  1185.     pea    _texcoord___initialize_context(a6)
  1186.     pea    3.w
  1187.     move.l    a2,a0
  1188.     add.l    #$E7EC,a0
  1189.     pea    (a0)
  1190.     jsr    _init_2d_map
  1191.     add.w    #$C,a7
  1192. ;         init_2d_map( &ctx->EvalMap.Map2Texture4, 4, texcoo
  1193.     pea    _texcoord___initialize_context(a6)
  1194.     pea    4.w
  1195.     move.l    a2,a0
  1196.     add.l    #$E80A,a0
  1197.     pea    (a0)
  1198.     jsr    _init_2d_map
  1199.     add.w    #$C,a7
  1200. ;      ctx->Fog.Enabled = GL_FALSE;
  1201.     clr.b    $22DE(a2)
  1202. ;      ctx->Fog.Mode = GL_EXP;
  1203.     move.l    #$800,$2300(a2)
  1204. ;     ASSIGN_4V( c
  1205.     clr.l    $22E0(a2)
  1206. ;     ASSIGN_4V( c
  1207.     lea    $22E0(a2),a0
  1208.     clr.l    4(a0)
  1209. ;     ASSIGN_4V( c
  1210.     lea    $22E0(a2),a0
  1211.     clr.l    $8(a0)
  1212. ;     ASSIGN_4V( c
  1213.     lea    $22E0(a2),a0
  1214.     clr.l    $C(a0)
  1215. ;      ctx->Fog.Index = 0.0;
  1216.     clr.l    $22FC(a2)
  1217. ;      ctx->Fog.Density = 1.0;
  1218.     move.l    #$3F800000,$22F0(a2)
  1219. ;      ctx->Fog.Start = 0.0;
  1220.     clr.l    $22F4(a2)
  1221. ;      ctx->Fog.End = 1.0;
  1222.     move.l    #$3F800000,$22F8(a2)
  1223. ;      ctx->Hint.PerspectiveCorrection = GL_DONT_CARE;
  1224.     move.l    #$1100,$2304(a2)
  1225. ;      ctx->Hint.PointSmooth = GL_DONT_CARE;
  1226.     move.l    #$1100,$2308(a2)
  1227. ;      ctx->Hint.LineSmooth = GL_DONT_CARE;
  1228.     move.l    #$1100,$230C(a2)
  1229. ;      ctx->Hint.PolygonSmooth = GL_DONT_CARE;
  1230.     move.l    #$1100,$2310(a2)
  1231. ;      ctx->Hint.Fog = GL_DONT_CARE;
  1232.     move.l    #$1100,$2314(a2)
  1233. ;      for (i=0;
  1234.     moveq    #0,d2
  1235.     bra.b    L336
  1236. L335
  1237. ;     init_light( &ctx->Light.Light[i], i );
  1238.     move.l    d2,-(a7)
  1239.     lea    $2318(a2),a0
  1240.     move.l    d2,d0
  1241.     muls.l    #$10E2,d0
  1242.     pea    0(a0,d0.l)
  1243.     jsr    _init_light
  1244.     addq.w    #$8,a7
  1245.     addq.l    #1,d2
  1246. L336
  1247.     cmp.l    #$8,d2
  1248.     blo.b    L335
  1249. L337
  1250. ;      init_lightmodel( &ctx->Light.Model );
  1251.     move.l    a2,a0
  1252.     add.l    #$AA28,a0
  1253.     pea    (a0)
  1254.     jsr    _init_lightmodel
  1255.     addq.w    #4,a7
  1256. ;      init_material( &ctx->Light.Material[0] );
  1257.     move.l    a2,a0
  1258.     add.l    #$AA3E,a0
  1259.     pea    (a0)
  1260.     jsr    _init_material
  1261.     addq.w    #4,a7
  1262. ;      init_material( &ctx->Light.Material[1] );
  1263.     move.l    a2,a0
  1264.     add.l    #$AA3E,a0
  1265.     pea    $370(a0)
  1266.     jsr    _init_material
  1267.     addq.w    #4,a7
  1268. ;      ctx->Light.ShadeModel = GL_SMOOTH;
  1269.     move.l    a2,a0
  1270.     add.l    #$B120,a0
  1271.     move.l    #$1D01,(a0)
  1272. ;      ctx->Light.Enabled = GL_FALSE;
  1273.     move.l    a2,a0
  1274.     add.l    #$B11E,a0
  1275.     clr.b    (a0)
  1276. ;      ctx->Light.ColorMaterialFace = GL_FRONT_AND_BACK;
  1277.     move.l    a2,a0
  1278.     add.l    #$B124,a0
  1279.     move.l    #$408,(a0)
  1280. ;      ctx->Light.ColorMaterialMode = GL_AMBIENT_AND_DIFFUSE;
  1281.     move.l    a2,a0
  1282.     add.l    #$B128,a0
  1283.     move.l    #$1602,(a0)
  1284. ;      ctx->Light.ColorMaterialBitmask
  1285.     pea    $1602.w
  1286.     pea    $408.w
  1287.     jsr    _gl_material_bitmask
  1288.     addq.w    #$8,a7
  1289.     move.l    a2,a0
  1290.     add.l    #$B12C,a0
  1291.     move.l    d0,(a0)
  1292. ;      ctx->Light.ColorMaterialEnabled = GL_FALSE;
  1293.     move.l    a2,a0
  1294.     add.l    #$B130,a0
  1295.     clr.b    (a0)
  1296. ;      ctx->Line.SmoothFlag = GL_FALSE;
  1297.     move.l    a2,a0
  1298.     add.l    #$B158,a0
  1299.     clr.b    (a0)
  1300. ;      ctx->Line.StippleFlag = GL_FALSE;
  1301.     move.l    a2,a0
  1302.     add.l    #$B159,a0
  1303.     clr.b    (a0)
  1304. ;      ctx->Line.Width = 1.0;
  1305.     move.l    a2,a0
  1306.     add.l    #$B160,a0
  1307.     move.l    #$3F800000,(a0)
  1308. ;      ctx->Line.StipplePattern = 0xffff;
  1309.     move.l    a2,a0
  1310.     add.l    #$B15A,a0
  1311.     move.w    #$FFFF,(a0)
  1312. ;      ctx->Line.StippleFactor = 1;
  1313.     move.l    a2,a0
  1314.     add.l    #$B15C,a0
  1315.     move.l    #1,(a0)
  1316. ;      ctx->List.ListBase = 0;
  1317.     move.l    a2,a0
  1318.     add.l    #$B164,a0
  1319.     clr.l    (a0)
  1320. ;      ctx->Pixel.RedBias = 0.0;
  1321.     move.l    a2,a0
  1322.     add.l    #$B16C,a0
  1323.     clr.l    (a0)
  1324. ;      ctx->Pixel.RedScale = 1.0;
  1325.     move.l    a2,a0
  1326.     add.l    #$B170,a0
  1327.     move.l    #$3F800000,(a0)
  1328. ;      ctx->Pixel.GreenBias = 0.0;
  1329.     move.l    a2,a0
  1330.     add.l    #$B174,a0
  1331.     clr.l    (a0)
  1332. ;      ctx->Pixel.GreenScale = 1.0;
  1333.     move.l    a2,a0
  1334.     add.l    #$B178,a0
  1335.     move.l    #$3F800000,(a0)
  1336. ;      ctx->Pixel.BlueBias = 0.0;
  1337.     move.l    a2,a0
  1338.     add.l    #$B17C,a0
  1339.     clr.l    (a0)
  1340. ;      ctx->Pixel.BlueScale = 1.0;
  1341.     move.l    a2,a0
  1342.     add.l    #$B180,a0
  1343.     move.l    #$3F800000,(a0)
  1344. ;      ctx->Pixel.AlphaBias = 0.0;
  1345.     move.l    a2,a0
  1346.     add.l    #$B184,a0
  1347.     clr.l    (a0)
  1348. ;      ctx->Pixel.AlphaScale = 1.0;
  1349.     move.l    a2,a0
  1350.     add.l    #$B188,a0
  1351.     move.l    #$3F800000,(a0)
  1352. ;      ctx->Pixel.ScaleOrBiasRGBA = GL_FALSE;
  1353.     move.l    a2,a0
  1354.     add.l    #$B18C,a0
  1355.     clr.b    (a0)
  1356. ;      ctx->Pixel.DepthBias = 0.0;
  1357.     move.l    a2,a0
  1358.     add.l    #$B18E,a0
  1359.     clr.l    (a0)
  1360. ;      ctx->Pixel.DepthScale = 1.0;
  1361.     move.l    a2,a0
  1362.     add.l    #$B192,a0
  1363.     move.l    #$3F800000,(a0)
  1364. ;      ctx->Pixel.IndexOffset = 0;
  1365.     move.l    a2,a0
  1366.     add.l    #$B19A,a0
  1367.     clr.l    (a0)
  1368. ;      ctx->Pixel.IndexShift = 0;
  1369.     move.l    a2,a0
  1370.     add.l    #$B196,a0
  1371.     clr.l    (a0)
  1372. ;      ctx->Pixel.ZoomX = 1.0;
  1373.     move.l    a2,a0
  1374.     add.l    #$B1A0,a0
  1375.     move.l    #$3F800000,(a0)
  1376. ;      ctx->Pixel.ZoomY = 1.0;
  1377.     move.l    a2,a0
  1378.     add.l    #$B1A4,a0
  1379.     move.l    #$3F800000,(a0)
  1380. ;      ctx->Pixel.MapColorFlag = GL_FALSE;
  1381.     move.l    a2,a0
  1382.     add.l    #$B19E,a0
  1383.     clr.b    (a0)
  1384. ;      ctx->Pixel.MapStencilFlag = GL_FALSE;
  1385.     move.l    a2,a0
  1386.     add.l    #$B19F,a0
  1387.     clr.b    (a0)
  1388. ;      ctx->Pixel.MapStoSsize = 1;
  1389.     move.l    a2,a0
  1390.     add.l    #$B1A8,a0
  1391.     move.l    #1,(a0)
  1392. ;      ctx->Pixel.MapItoIsize = 1;
  1393.     move.l    a2,a0
  1394.     add.l    #$B1AC,a0
  1395.     move.l    #1,(a0)
  1396. ;      ctx->Pixel.MapItoRsize = 1;
  1397.     move.l    a2,a0
  1398.     add.l    #$B1B0,a0
  1399.     move.l    #1,(a0)
  1400. ;      ctx->Pixel.MapItoGsize = 1;
  1401.     move.l    a2,a0
  1402.     add.l    #$B1B4,a0
  1403.     move.l    #1,(a0)
  1404. ;      ctx->Pixel.MapItoBsize = 1;
  1405.     move.l    a2,a0
  1406.     add.l    #$B1B8,a0
  1407.     move.l    #1,(a0)
  1408. ;      ctx->Pixel.MapItoAsize = 1;
  1409.     move.l    a2,a0
  1410.     add.l    #$B1BC,a0
  1411.     move.l    #1,(a0)
  1412. ;      ctx->Pixel.MapRtoRsize = 1;
  1413.     move.l    a2,a0
  1414.     add.l    #$B1C0,a0
  1415.     move.l    #1,(a0)
  1416. ;      ctx->Pixel.MapGtoGsize = 1;
  1417.     move.l    a2,a0
  1418.     add.l    #$B1C4,a0
  1419.     move.l    #1,(a0)
  1420. ;      ctx->Pixel.MapBtoBsize = 1;
  1421.     move.l    a2,a0
  1422.     add.l    #$B1C8,a0
  1423.     move.l    #1,(a0)
  1424. ;      ctx->Pixel.MapAtoAsize = 1;
  1425.     move.l    a2,a0
  1426.     add.l    #$B1CC,a0
  1427.     move.l    #1,(a0)
  1428. ;      ctx->Pixel.MapStoS[0] = 0;
  1429.     move.l    a2,a0
  1430.     add.l    #$B1D0,a0
  1431.     clr.l    (a0)
  1432. ;      ctx->Pixel.MapItoI[0] = 0;
  1433.     move.l    a2,a0
  1434.     add.l    #$B5D0,a0
  1435.     clr.l    (a0)
  1436. ;      ctx->Pixel.MapItoR[0] = 0.0;
  1437.     move.l    a2,a0
  1438.     add.l    #$B9D0,a0
  1439.     clr.l    (a0)
  1440. ;      ctx->Pixel.MapItoG[0] = 0.0;
  1441.     move.l    a2,a0
  1442.     add.l    #$BDD0,a0
  1443.     clr.l    (a0)
  1444. ;      ctx->Pixel.MapItoB[0] = 0.0;
  1445.     move.l    a2,a0
  1446.     add.l    #$C1D0,a0
  1447.     clr.l    (a0)
  1448. ;      ctx->Pixel.MapItoA[0] = 0.0;
  1449.     move.l    a2,a0
  1450.     add.l    #$C5D0,a0
  1451.     clr.l    (a0)
  1452. ;      ctx->Pixel.MapItoR8[0] = 0;
  1453.     move.l    a2,a0
  1454.     add.l    #$C9D0,a0
  1455.     clr.b    (a0)
  1456. ;      ctx->Pixel.MapItoG8[0] = 0;
  1457.     move.l    a2,a0
  1458.     add.l    #$CAD0,a0
  1459.     clr.b    (a0)
  1460. ;      ctx->Pixel.MapItoB8[0] = 0;
  1461.     move.l    a2,a0
  1462.     add.l    #$CBD0,a0
  1463.     clr.b    (a0)
  1464. ;      ctx->Pixel.MapItoA8[0] = 0;
  1465.     move.l    a2,a0
  1466.     add.l    #$CCD0,a0
  1467.     clr.b    (a0)
  1468. ;      ctx->Pixel.MapRtoR[0] = 0.0;
  1469.     move.l    a2,a0
  1470.     add.l    #$CDD0,a0
  1471.     clr.l    (a0)
  1472. ;      ctx->Pixel.MapGtoG[0] = 0.0;
  1473.     move.l    a2,a0
  1474.     add.l    #$D1D0,a0
  1475.     clr.l    (a0)
  1476. ;      ctx->Pixel.MapBtoB[0] = 0.0;
  1477.     move.l    a2,a0
  1478.     add.l    #$D5D0,a0
  1479.     clr.l    (a0)
  1480. ;      ctx->Pixel.MapAtoA[0] = 0.0;
  1481.     move.l    a2,a0
  1482.     add.l    #$D9D0,a0
  1483.     clr.l    (a0)
  1484. ;      ctx->Point.SmoothFlag = GL_FALSE;
  1485.     move.l    a2,a0
  1486.     add.l    #$DDD0,a0
  1487.     clr.b    (a0)
  1488. ;      ctx->Point.Size = 1.0;
  1489.     move.l    a2,a0
  1490.     add.l    #$DDD2,a0
  1491.     move.l    #$3F800000,(a0)
  1492. ;      ctx->Point.Params[0] = 1.0;
  1493.     move.l    a2,a0
  1494.     add.l    #$DDD6,a0
  1495.     move.l    #$3F800000,(a0)
  1496. ;      ctx->Point.Params[1] = 0.0;
  1497.     move.l    a2,a0
  1498.     add.l    #$DDD6,a0
  1499.     clr.l    4(a0)
  1500. ;      ctx->Point.Params[2] = 0.0;
  1501.     move.l    a2,a0
  1502.     add.l    #$DDD6,a0
  1503.     clr.l    $8(a0)
  1504. ;      ctx->Point.MinSize = 0.0;
  1505.     move.l    a2,a0
  1506.     add.l    #$DDE2,a0
  1507.     clr.l    (a0)
  1508. ;      ctx->Point.MaxSize = (GLfloat) MAX_POINT_SIZE;
  1509.     move.l    a2,a0
  1510.     add.l    #$DDE6,a0
  1511.     move.l    #$41200000,(a0)
  1512. ;      ctx->Point.Threshold = 1.0;
  1513.     move.l    a2,a0
  1514.     add.l    #$DDEA,a0
  1515.     move.l    #$3F800000,(a0)
  1516. ;      ctx->Polygon.CullFlag = GL_FALSE;
  1517.     move.l    a2,a0
  1518.     add.l    #$DDFB,a0
  1519.     clr.b    (a0)
  1520. ;      ctx->Polygon.CullFaceMode = GL_BACK;
  1521.     move.l    a2,a0
  1522.     add.l    #$DDFC,a0
  1523.     move.l    #$405,(a0)
  1524. ;      ctx->Polygon.FrontFace = GL_CCW;
  1525.     move.l    a2,a0
  1526.     add.l    #$DDEE,a0
  1527.     move.l    #$901,(a0)
  1528. ;      ctx->Polygon.FrontMode = GL_FILL;
  1529.     move.l    a2,a0
  1530.     add.l    #$DDF2,a0
  1531.     move.l    #$1B02,(a0)
  1532. ;      ctx->Polygon.BackMode = GL_FILL;
  1533.     move.l    a2,a0
  1534.     add.l    #$DDF6,a0
  1535.     move.l    #$1B02,(a0)
  1536. ;      ctx->Polygon.Unfilled = GL_FALSE;
  1537.     move.l    a2,a0
  1538.     add.l    #$DDFA,a0
  1539.     clr.b    (a0)
  1540. ;      ctx->Polygon.SmoothFlag = GL_FALSE;
  1541.     move.l    a2,a0
  1542.     add.l    #$DE04,a0
  1543.     clr.b    (a0)
  1544. ;      ctx->Polygon.StippleFlag = GL_FALSE;
  1545.     move.l    a2,a0
  1546.     add.l    #$DE05,a0
  1547.     clr.b    (a0)
  1548. ;      ctx->Polygon.OffsetFactor = 0.0F;
  1549.     move.l    a2,a0
  1550.     add.l    #$DE06,a0
  1551.     clr.l    (a0)
  1552. ;      ctx->Polygon.OffsetUnits = 0.0F;
  1553.     move.l    a2,a0
  1554.     add.l    #$DE0A,a0
  1555.     clr.l    (a0)
  1556. ;      ctx->Polygon.OffsetPoint = GL_FALSE;
  1557.     move.l    a2,a0
  1558.     add.l    #$DE0E,a0
  1559.     clr.b    (a0)
  1560. ;      ctx->Polygon.OffsetLine = GL_FALSE;
  1561.     move.l    a2,a0
  1562.     add.l    #$DE0F,a0
  1563.     clr.b    (a0)
  1564. ;      ctx->Polygon.OffsetFill = GL_FALSE;
  1565.     move.l    a2,a0
  1566.     add.l    #$DE10,a0
  1567.     clr.b    (a0)
  1568. ;      ctx->Polygon.OffsetAny = GL_FALSE;
  1569.     move.l    a2,a0
  1570.     add.l    #$DE11,a0
  1571.     clr.b    (a0)
  1572. ;MSET( ctx->Polygo
  1573.     pea    $80.w
  1574.     pea    $FF.w
  1575.     move.l    a2,a0
  1576.     add.l    #$DE12,a0
  1577.     pea    (a0)
  1578.     jsr    _q_memset
  1579.     add.w    #$C,a7
  1580. ;      ctx->Scissor.Enabled = GL_FALSE;
  1581.     move.l    a2,a0
  1582.     add.l    #$DE92,a0
  1583.     clr.b    (a0)
  1584. ;      ctx->Scissor.X = 0;
  1585.     move.l    a2,a0
  1586.     add.l    #$DE94,a0
  1587.     clr.l    (a0)
  1588. ;      ctx->Scissor.Y = 0;
  1589.     move.l    a2,a0
  1590.     add.l    #$DE98,a0
  1591.     clr.l    (a0)
  1592. ;      ctx->Scissor.Width = 0;
  1593.     move.l    a2,a0
  1594.     add.l    #$DE9C,a0
  1595.     clr.l    (a0)
  1596. ;      ctx->Scissor.Height = 0;
  1597.     move.l    a2,a0
  1598.     add.l    #$DEA0,a0
  1599.     clr.l    (a0)
  1600. ;      ctx->Stencil.Enabled = GL_FALSE;
  1601.     move.l    a2,a0
  1602.     add.l    #$DEA4,a0
  1603.     clr.b    (a0)
  1604. ;      ctx->Stencil.Function = GL_ALWAYS;
  1605.     move.l    a2,a0
  1606.     add.l    #$DEA6,a0
  1607.     move.l    #$207,(a0)
  1608. ;      ctx->Stencil.FailFunc = GL_KEEP;
  1609.     move.l    a2,a0
  1610.     add.l    #$DEAA,a0
  1611.     move.l    #$1E00,(a0)
  1612. ;      ctx->Stencil.ZPassFunc = GL_KEEP;
  1613.     move.l    a2,a0
  1614.     add.l    #$DEAE,a0
  1615.     move.l    #$1E00,(a0)
  1616. ;      ctx->Stencil.ZFailFunc = GL_KEEP;
  1617.     move.l    a2,a0
  1618.     add.l    #$DEB2,a0
  1619.     move.l    #$1E00,(a0)
  1620. ;      ctx->Stencil.Ref = 0;
  1621.     move.l    a2,a0
  1622.     add.l    #$DEB6,a0
  1623.     clr.b    (a0)
  1624. ;      ctx->Stencil.ValueMask = 0xff;
  1625.     move.l    a2,a0
  1626.     add.l    #$DEB7,a0
  1627.     move.b    #$FF,(a0)
  1628. ;      ctx->Stencil.Clear = 0;
  1629.     move.l    a2,a0
  1630.     add.l    #$DEB8,a0
  1631.     clr.b    (a0)
  1632. ;      ctx->Stencil.WriteMask = 0xff;
  1633.     move.l    a2,a0
  1634.     add.l    #$DEB9,a0
  1635.     move.b    #$FF,(a0)
  1636. ;      ctx->Texture.CurrentSet = 0;
  1637.     move.l    a2,a0
  1638.     add.l    #$DEBA,a0
  1639.     clr.l    (a0)
  1640. ;      ctx->Texture.CurrentTransformSet = 0;
  1641.     move.l    a2,a0
  1642.     add.l    #$DEBE,a0
  1643.     clr.l    (a0)
  1644. ;      ctx->Texture.Enabled = 0;
  1645.     move.l    a2,a0
  1646.     add.l    #$DEC2,a0
  1647.     clr.l    (a0)
  1648. ;      ctx->Texture.AnyDirty = GL_FALSE;
  1649.     move.l    a2,a0
  1650.     add.l    #$E03E,a0
  1651.     clr.b    (a0)
  1652. ;      for (i=0;
  1653.     moveq    #0,d2
  1654.     bra.b    L339
  1655. L338
  1656. ;         init_texture_set( ctx, i );
  1657.     move.l    d2,-(a7)
  1658.     move.l    a2,-(a7)
  1659.     jsr    _init_texture_set
  1660.     addq.w    #$8,a7
  1661.     addq.l    #1,d2
  1662. L339
  1663.     cmp.l    #2,d2
  1664.     blo.b    L338
  1665. L340
  1666. ;      ctx->Texture.SharedPalette = GL_FALSE;
  1667.     move.l    a2,a0
  1668.     add.l    #$E04C,a0
  1669.     clr.b    (a0)
  1670. ;      ctx->Texture.Palette[0] = 255;
  1671.     move.l    a2,a0
  1672.     add.l    #$E04D,a0
  1673.     move.b    #$FF,(a0)
  1674. ;      ctx->Texture.Palette[1] = 255;
  1675.     move.l    a2,a0
  1676.     add.l    #$E04D,a0
  1677.     move.b    #$FF,1(a0)
  1678. ;      ctx->Texture.Palette[2] = 255;
  1679.     move.l    a2,a0
  1680.     add.l    #$E04D,a0
  1681.     move.b    #$FF,2(a0)
  1682. ;      ctx->Texture.Palette[3] = 255;
  1683.     move.l    a2,a0
  1684.     add.l    #$E04D,a0
  1685.     move.b    #$FF,3(a0)
  1686. ;      ctx->Texture.PaletteSize = 1;
  1687.     move.l    a2,a0
  1688.     add.l    #$E44E,a0
  1689.     move.l    #1,(a0)
  1690. ;      ctx->Texture.PaletteIntFormat = GL_RGBA;
  1691.     move.l    a2,a0
  1692.     add.l    #$E452,a0
  1693.     move.l    #$1908,(a0)
  1694. ;      ctx->Texture.PaletteFormat = GL_RGBA;
  1695.     move.l    a2,a0
  1696.     add.l    #$E456,a0
  1697.     move.l    #$1908,(a0)
  1698. ;      ctx->Transform.MatrixMode = GL_MODELVIEW;
  1699.     move.l    a2,a0
  1700.     add.l    #$E4D2,a0
  1701.     move.l    #$1700,(a0)
  1702. ;      ctx->Transform.Normalize = GL_FALSE;
  1703.     move.l    a2,a0
  1704.     add.l    #$E53D,a0
  1705.     clr.b    (a0)
  1706. ;      ctx->Transform.RescaleNormals = GL_FALSE;
  1707.     move.l    a2,a0
  1708.     add.l    #$E53E,a0
  1709.     clr.b    (a0)
  1710. ;      for (i=0;
  1711.     moveq    #0,d2
  1712.     bra.b    L342
  1713. L341
  1714. ;     ctx->Transform.ClipEnabled[i] = GL_FALSE;
  1715.     move.l    a2,a0
  1716.     add.l    #$E536,a0
  1717.     clr.b    0(a0,d2.l)
  1718. ;ctx->Transform.Cl
  1719.     move.l    a2,a0
  1720.     add.l    #$E4D6,a0
  1721.     move.l    d2,d0
  1722.     asl.l    #4,d0
  1723.     clr.l    0(a0,d0.l)
  1724. ;ctx->Transform.Cl
  1725.     move.l    a2,a0
  1726.     add.l    #$E4D6,a0
  1727.     move.l    d2,d0
  1728.     asl.l    #4,d0
  1729.     lea    0(a0,d0.l),a0
  1730.     clr.l    4(a0)
  1731. ;ctx->Transform.Cl
  1732.     move.l    a2,a0
  1733.     add.l    #$E4D6,a0
  1734.     move.l    d2,d0
  1735.     asl.l    #4,d0
  1736.     lea    0(a0,d0.l),a0
  1737.     clr.l    $8(a0)
  1738. ;ctx->Transform.Cl
  1739.     move.l    a2,a0
  1740.     add.l    #$E4D6,a0
  1741.     move.l    d2,d0
  1742.     asl.l    #4,d0
  1743.     lea    0(a0,d0.l),a0
  1744.     clr.l    $C(a0)
  1745.     addq.l    #1,d2
  1746. L342
  1747.     cmp.l    #6,d2
  1748.     blo.b    L341
  1749. L343
  1750. ;      ctx->Transform.AnyClip = GL_FALSE;
  1751.     move.l    a2,a0
  1752.     add.l    #$E53C,a0
  1753.     clr.b    (a0)
  1754. ;      ctx->Viewport.X = 0;
  1755.     move.l    a2,a0
  1756.     add.l    #$E540,a0
  1757.     clr.l    (a0)
  1758. ;      ctx->Viewport.Y = 0;
  1759.     move.l    a2,a0
  1760.     add.l    #$E544,a0
  1761.     clr.l    (a0)
  1762. ;      ctx->Viewport.Width = 0;
  1763.     move.l    a2,a0
  1764.     add.l    #$E548,a0
  1765.     clr.l    (a0)
  1766. ;      ctx->Viewport.Height = 0;
  1767.     move.l    a2,a0
  1768.     add.l    #$E54C,a0
  1769.     clr.l    (a0)
  1770. ;      ctx->Viewport.Near = 0.0;
  1771.     move.l    a2,a0
  1772.     add.l    #$E550,a0
  1773.     clr.l    (a0)
  1774. ;      ctx->Viewport.Far = 1.0;
  1775.     move.l    a2,a0
  1776.     add.l    #$E554,a0
  1777.     move.l    #$3F800000,(a0)
  1778. ;      ctx->Viewport.Sx = 0.0;
  1779.     move.l    a2,a0
  1780.     add.l    #$E558,a0
  1781.     clr.l    (a0)
  1782. ;      ctx->Viewport.Tx = 0.0;
  1783.     move.l    a2,a0
  1784.     add.l    #$E564,a0
  1785.     clr.l    (a0)
  1786. ;      ctx->Viewport.Sy = 0.0;
  1787.     move.l    a2,a0
  1788.     add.l    #$E55C,a0
  1789.     clr.l    (a0)
  1790. ;      ctx->Viewport.Ty = 0.0;
  1791.     move.l    a2,a0
  1792.     add.l    #$E568,a0
  1793.     clr.l    (a0)
  1794. ;      ctx->Viewport.Sz = 0.5 * DEPTH_SCALE;
  1795.     move.l    a2,a0
  1796.     add.l    #$E560,a0
  1797.     move.l    #$46FFFF00,(a0)
  1798. ;      ctx->Viewport.Tz = 0.5 * DEPTH_SCALE;
  1799.     move.l    a2,a0
  1800.     add.l    #$E56C,a0
  1801.     move.l    #$46FFFF00,(a0)
  1802. ;      ctx->Array.VertexSize = 4;
  1803.     move.l    a2,a0
  1804.     add.l    #$E5B8,a0
  1805.     move.l    #4,(a0)
  1806. ;      ctx->Array.VertexType = GL_FLOAT;
  1807.     move.l    a2,a0
  1808.     add.l    #$E5BC,a0
  1809.     move.l    #$1406,(a0)
  1810. ;      ctx->Array.VertexStride = 0;
  1811.     move.l    a2,a0
  1812.     add.l    #$E5C0,a0
  1813.     clr.l    (a0)
  1814. ;      ctx->Array.VertexStrideB = 0;
  1815.     move.l    a2,a0
  1816.     add.l    #$E5C4,a0
  1817.     clr.l    (a0)
  1818. ;      ctx->Array.VertexPtr = NULL;
  1819.     move.l    a2,a1
  1820.     add.l    #$E5C8,a1
  1821.     clr.l    (a1)
  1822. ;      ctx->Array.VertexEnabled = GL_FALSE;
  1823.     move.l    a2,a0
  1824.     add.l    #$E5CC,a0
  1825.     clr.b    (a0)
  1826. ;      ctx->Array.NormalType = GL_FLOAT;
  1827.     move.l    a2,a0
  1828.     add.l    #$E5CE,a0
  1829.     move.l    #$1406,(a0)
  1830. ;      ctx->Array.NormalStride = 0;
  1831.     move.l    a2,a0
  1832.     add.l    #$E5D2,a0
  1833.     clr.l    (a0)
  1834. ;      ctx->Array.NormalStrideB = 0;
  1835.     move.l    a2,a0
  1836.     add.l    #$E5D6,a0
  1837.     clr.l    (a0)
  1838. ;      ctx->Array.NormalPtr = NULL;
  1839.     move.l    a2,a1
  1840.     add.l    #$E5DA,a1
  1841.     clr.l    (a1)
  1842. ;      ctx->Array.NormalEnabled = GL_FALSE;
  1843.     move.l    a2,a0
  1844.     add.l    #$E5DE,a0
  1845.     clr.b    (a0)
  1846. ;      ctx->Array.ColorSize = 4;
  1847.     move.l    a2,a0
  1848.     add.l    #$E5E0,a0
  1849.     move.l    #4,(a0)
  1850. ;      ctx->Array.ColorType = GL_FLOAT;
  1851.     move.l    a2,a0
  1852.     add.l    #$E5E4,a0
  1853.     move.l    #$1406,(a0)
  1854. ;      ctx->Array.ColorStride = 0;
  1855.     move.l    a2,a0
  1856.     add.l    #$E5E8,a0
  1857.     clr.l    (a0)
  1858. ;      ctx->Array.ColorStrideB = 0;
  1859.     move.l    a2,a0
  1860.     add.l    #$E5EC,a0
  1861.     clr.l    (a0)
  1862. ;      ctx->Array.ColorPtr = NULL;
  1863.     move.l    a2,a1
  1864.     add.l    #$E5F0,a1
  1865.     clr.l    (a1)
  1866. ;      ctx->Array.ColorEnabled = GL_FALSE;
  1867.     move.l    a2,a0
  1868.     add.l    #$E5F4,a0
  1869.     clr.b    (a0)
  1870. ;      ctx->Array.IndexType = GL_FLOAT;
  1871.     move.l    a2,a0
  1872.     add.l    #$E5F6,a0
  1873.     move.l    #$1406,(a0)
  1874. ;      ctx->Array.IndexStride = 0;
  1875.     move.l    a2,a0
  1876.     add.l    #$E5FA,a0
  1877.     clr.l    (a0)
  1878. ;      ctx->Array.IndexStrideB = 0;
  1879.     move.l    a2,a0
  1880.     add.l    #$E5FE,a0
  1881.     clr.l    (a0)
  1882. ;      ctx->Array.IndexPtr = NULL;
  1883.     move.l    a2,a1
  1884.     add.l    #$E602,a1
  1885.     clr.l    (a1)
  1886. ;      ctx->Array.IndexEnabled = GL_FALSE;
  1887.     move.l    a2,a0
  1888.     add.l    #$E606,a0
  1889.     clr.b    (a0)
  1890. ;      for (i = 0;
  1891.     moveq    #0,d2
  1892.     bra.b    L345
  1893. L344
  1894. ;         ctx->Array.TexCoordSize[i] = 4;
  1895.     move.l    a2,a0
  1896.     add.l    #$E608,a0
  1897.     move.l    #4,0(a0,d2.l*4)
  1898. ;         ctx->Array.TexCoordType[i] = GL_FLOAT;
  1899.     move.l    a2,a0
  1900.     add.l    #$E610,a0
  1901.     move.l    #$1406,0(a0,d2.l*4)
  1902. ;         ctx->Array.TexCoordStride[i] = 0;
  1903.     move.l    a2,a0
  1904.     add.l    #$E618,a0
  1905.     clr.l    0(a0,d2.l*4)
  1906. ;         ctx->Array.TexCoordStrideB[i] = 0;
  1907.     move.l    a2,a0
  1908.     add.l    #$E620,a0
  1909.     clr.l    0(a0,d2.l*4)
  1910. ;         ctx->Array.TexCoordPtr[i] = NULL;
  1911.     move.l    a2,a0
  1912.     add.l    #$E628,a0
  1913.     clr.l    0(a0,d2.l*4)
  1914. ;         ctx->Array.TexCoordEnabled[i] = GL_FALSE;
  1915.     move.l    a2,a0
  1916.     add.l    #$E630,a0
  1917.     clr.b    0(a0,d2.l)
  1918.     addq.l    #1,d2
  1919. L345
  1920.     cmp.l    #2,d2
  1921.     blo.b    L344
  1922. L346
  1923. ;      ctx->Array.TexCoordInterleaveFactor = 1;
  1924.     move.l    a2,a0
  1925.     add.l    #$E632,a0
  1926.     move.l    #1,(a0)
  1927. ;      ctx->Array.EdgeFlagStride = 0;
  1928.     move.l    a2,a0
  1929.     add.l    #$E636,a0
  1930.     clr.l    (a0)
  1931. ;      ctx->Array.EdgeFlagStrideB = 0;
  1932.     move.l    a2,a0
  1933.     add.l    #$E63A,a0
  1934.     clr.l    (a0)
  1935. ;      ctx->Array.EdgeFlagPtr = NULL;
  1936.     move.l    a2,a1
  1937.     add.l    #$E63E,a1
  1938.     clr.l    (a1)
  1939. ;      ctx->Array.EdgeFlagEnabled = GL_FALSE;
  1940.     move.l    a2,a0
  1941.     add.l    #$E642,a0
  1942.     clr.b    (a0)
  1943. ;      ctx->Pack.Alignment = 4;
  1944.     move.l    a2,a0
  1945.     add.l    #$E644,a0
  1946.     move.l    #4,(a0)
  1947. ;      ctx->Pack.RowLength = 0;
  1948.     move.l    a2,a0
  1949.     add.l    #$E648,a0
  1950.     clr.l    (a0)
  1951. ;      ctx->Pack.SkipPixels = 0;
  1952.     move.l    a2,a0
  1953.     add.l    #$E64C,a0
  1954.     clr.l    (a0)
  1955. ;      ctx->Pack.SkipRows = 0;
  1956.     move.l    a2,a0
  1957.     add.l    #$E650,a0
  1958.     clr.l    (a0)
  1959. ;      ctx->Pack.SwapBytes = GL_FALSE;
  1960.     move.l    a2,a0
  1961.     add.l    #$E65C,a0
  1962.     clr.b    (a0)
  1963. ;      ctx->Pack.LsbFirst = GL_FALSE;
  1964.     move.l    a2,a0
  1965.     add.l    #$E65D,a0
  1966.     clr.b    (a0)
  1967. ;      ctx->Unpack.Alignment = 4;
  1968.     move.l    a2,a0
  1969.     add.l    #$E65E,a0
  1970.     move.l    #4,(a0)
  1971. ;      ctx->Unpack.RowLength = 0;
  1972.     move.l    a2,a0
  1973.     add.l    #$E662,a0
  1974.     clr.l    (a0)
  1975. ;      ctx->Unpack.SkipPixels = 0;
  1976.     move.l    a2,a0
  1977.     add.l    #$E666,a0
  1978.     clr.l    (a0)
  1979. ;      ctx->Unpack.SkipRows = 0;
  1980.     move.l    a2,a0
  1981.     add.l    #$E66A,a0
  1982.     clr.l    (a0)
  1983. ;      ctx->Unpack.SwapBytes = GL_FALSE;
  1984.     move.l    a2,a0
  1985.     add.l    #$E676,a0
  1986.     clr.b    (a0)
  1987. ;      ctx->Unpack.LsbFirst = GL_FALSE;
  1988.     move.l    a2,a0
  1989.     add.l    #$E677,a0
  1990.     clr.b    (a0)
  1991. ;      ctx->Feedback.Type = GL_2D;
  1992.     move.l    a2,a0
  1993.     add.l    #$E828,a0
  1994.     move.l    #$600,(a0)
  1995. ;      ctx->Feedback.Buffer = NULL;
  1996.     move.l    a2,a1
  1997.     add.l    #$E830,a1
  1998.     clr.l    (a1)
  1999. ;      ctx->Feedback.BufferSize = 0;
  2000.     move.l    a2,a0
  2001.     add.l    #$E834,a0
  2002.     clr.l    (a0)
  2003. ;      ctx->Feedback.Count = 0;
  2004.     move.l    a2,a0
  2005.     add.l    #$E838,a0
  2006.     clr.l    (a0)
  2007. ;      ctx->Select.Buffer = NULL;
  2008.     move.l    a2,a1
  2009.     add.l    #$E83C,a1
  2010.     clr.l    (a1)
  2011. ;      ctx->Select.BufferSize = 0;
  2012.     move.l    a2,a0
  2013.     add.l    #$E840,a0
  2014.     clr.l    (a0)
  2015. ;      ctx->Select.BufferCount = 0;
  2016.     move.l    a2,a0
  2017.     add.l    #$E844,a0
  2018.     clr.l    (a0)
  2019. ;      ctx->Select.Hits = 0;
  2020.     move.l    a2,a0
  2021.     add.l    #$E848,a0
  2022.     clr.l    (a0)
  2023. ;      ctx->Select.NameStackDepth = 0;
  2024.     move.l    a2,a0
  2025.     add.l    #$E84C,a0
  2026.     clr.l    (a0)
  2027. ;      ctx->TexCoordSet = 0;
  2028.     move.l    a2,a0
  2029.     add.l    #$E570,a0
  2030.     clr.l    (a0)
  2031. ;      ctx->AttribStackDepth = 0;
  2032.     clr.l    $2170(a2)
  2033. ;      ctx->ClientAttribStackDepth = 0;
  2034.     move.l    a2,a0
  2035.     add.l    #$E574,a0
  2036.     clr.l    (a0)
  2037. ;      ctx->NewState = NEW_ALL;
  2038.     move.l    a2,a0
  2039.     add.l    #$E960,a0
  2040.     move.l    #$FF,(a0)
  2041. ;      ctx->RenderMode = GL_RENDER;
  2042.     move.l    a2,a0
  2043.     add.l    #$E964,a0
  2044.     move.l    #$1C00,(a0)
  2045. ;      ctx->Primitive = GL_BITMAP;
  2046.     move.l    a2,a0
  2047.     add.l    #$E968,a0
  2048.     move.l    #$1A00,(a0)
  2049. ;      ctx->StippleCounter = 0;
  2050.     move.l    a2,a0
  2051.     add.l    #$E96C,a0
  2052.     clr.l    (a0)
  2053. ;      ctx->NeedNormals = GL_FALSE;
  2054.     move.l    a2,a0
  2055.     add.l    #$E986,a0
  2056.     clr.b    (a0)
  2057. ;      ctx->DoViewportMapping = GL_TRUE;
  2058.     move.l    a2,a0
  2059.     add.l    #$E98E,a0
  2060.     move.b    #1,(a0)
  2061. ;      ctx->CallDepth = 0;
  2062.     clr.l    $215A(a2)
  2063. ;      ctx->ExecuteFlag = GL_TRUE;
  2064.     move.b    #1,$215E(a2)
  2065. ;      ctx->CompileFlag = GL_FALSE;
  2066.     clr.b    $215F(a2)
  2067. ;      ctx->CurrentListPtr = NULL;
  2068.     clr.l    $2160(a2)
  2069. ;      ctx->CurrentBlock = NULL;
  2070.     clr.l    $2168(a2)
  2071. ;      ctx->CurrentListNum = 0;
  2072.     clr.l    $2164(a2)
  2073. ;      ctx->CurrentPos = 0;
  2074.     clr.l    $216C(a2)
  2075. ;      ctx->ErrorValue = (GLenum) GL_NO_ERROR;
  2076.     move.l    a2,a0
  2077.     add.l    #$E95A,a0
  2078.     clr.l    (a0)
  2079. ;      ctx->NoRaster = getenv("MESA_NO_RASTER") ? GL_TRUE : GL_
  2080.     move.l    #L320,-(a7)
  2081.     jsr    _getenv
  2082.     addq.w    #4,a7
  2083.     tst.l    d0
  2084.     beq.b    L348
  2085. L347
  2086.     moveq    #1,d0
  2087.     bra.b    L349
  2088. L348
  2089.     moveq    #0,d0
  2090. L349
  2091.     move.l    a2,a0
  2092.     add.l    #$E99C,a0
  2093.     move.b    d0,(a0)
  2094. ;      ctx->NoDither = getenv("MESA_NO_DITHER") ? GL_TRUE : GL_
  2095.     move.l    #L321,-(a7)
  2096.     jsr    _getenv
  2097.     addq.w    #4,a7
  2098.     tst.l    d0
  2099.     beq.b    L351
  2100. L350
  2101.     moveq    #1,d0
  2102.     bra.b    L352
  2103. L351
  2104.     moveq    #0,d0
  2105. L352
  2106.     move.l    a2,a0
  2107.     add.l    #$E99D,a0
  2108.     move.b    d0,(a0)
  2109. ;      if (ctx->NoDither) 
  2110.     move.l    a2,a0
  2111.     add.l    #$E99D,a0
  2112.     tst.b    (a0)
  2113.     beq.b    L356
  2114. L353
  2115. ;         if (getenv("MESA_DEBUG")) 
  2116.     move.l    #L322,-(a7)
  2117.     jsr    _getenv
  2118.     addq.w    #4,a7
  2119.     tst.l    d0
  2120.     beq.b    L355
  2121. L354
  2122. ;            fprintf(stderr, "MESA_NO_DITHER set - dither
  2123.     move.l    #L323,-(a7)
  2124.     pea    _std__err(a6)
  2125.     jsr    _fprintf
  2126.     addq.w    #$8,a7
  2127. L355
  2128. ;         ctx->Color.DitherFlag = GL_FALSE;
  2129.     clr.b    $2215(a2)
  2130. L356
  2131.     movem.l    (a7)+,d2/a2
  2132.     rts
  2133.  
  2134. L322
  2135.     dc.b    'MESA_DEBUG',0
  2136. L321
  2137.     dc.b    'MESA_NO_DITHER',0
  2138. L323
  2139.     dc.b    'MESA_NO_DITHER set - dithering disabled',$A,0
  2140. L320
  2141.     dc.b    'MESA_NO_RASTER',0
  2142.  
  2143.     SECTION "_initialize_context:1",DATA
  2144.  
  2145. _identity___initialize_context
  2146.     dc.l    $3F800000,0,0,0,0,$3F800000,0,0,0,0,$3F800000
  2147.     dc.l    0,0,0,0,$3F800000
  2148. _vertex___initialize_context
  2149.     dc.l    0,0,0,$3F800000
  2150. _normal___initialize_context
  2151.     dc.l    0,0,$3F800000
  2152. _index___initialize_context
  2153.     dc.l    $3F800000
  2154. _color___initialize_context
  2155.     dc.l    $3F800000,$3F800000,$3F800000,$3F800000
  2156. _texcoord___initialize_context
  2157.     dc.l    0,0,0,$3F800000
  2158.  
  2159.     SECTION "_gl_create_visual:0",CODE
  2160.  
  2161.  
  2162. ;      return GL_FALSE;
  2163.     XDEF    _gl_create_visual
  2164. _gl_create_visual
  2165. L384    EQU    -4
  2166.     link    a5,#L384
  2167.     movem.l    d2-d7,-(a7)
  2168.     move.l    $2C(a5),d2
  2169.     move.b    $A(a5),d3
  2170.     move.b    $C(a5),d4
  2171.     move.l    $18(a5),d5
  2172.     move.l    $14(a5),d6
  2173.     move.l    $10(a5),d7
  2174. L358
  2175. ;   if (stereoFlag) 
  2176.     tst.b    $E(a5)
  2177.     beq.b    L360
  2178. L359
  2179. ;      gl_warning(NULL, "stereo not supported");
  2180.     move.l    #L357,-(a7)
  2181.     clr.l    -(a7)
  2182.     jsr    _gl_warning
  2183.     addq.w    #$8,a7
  2184.     moveq    #0,d0
  2185.     movem.l    (a7)+,d2-d7
  2186.     unlk    a5
  2187.     rts
  2188. L360
  2189. ;   if (depthBits > (GLint) (8*sizeof(GLdepth))) 
  2190.     move.l    d7,d0
  2191.     cmp.l    #$10,d0
  2192.     ble.b    L362
  2193. L361
  2194.     moveq    #0,d0
  2195.     movem.l    (a7)+,d2-d7
  2196.     unlk    a5
  2197.     rts
  2198. L362
  2199. ;   if (stencilBits > (GLint) (8*sizeof(GLstencil))) 
  2200.     move.l    d6,d0
  2201.     cmp.l    #$8,d0
  2202.     ble.b    L364
  2203. L363
  2204.     moveq    #0,d0
  2205.     movem.l    (a7)+,d2-d7
  2206.     unlk    a5
  2207.     rts
  2208. L364
  2209. ;   if (accumBits > (GLint) (8*sizeof(GLaccum))) 
  2210.     cmp.l    #$10,d5
  2211.     ble.b    L366
  2212. L365
  2213.     moveq    #0,d0
  2214.     movem.l    (a7)+,d2-d7
  2215.     unlk    a5
  2216.     rts
  2217. L366
  2218. ;   vis = (GLvisual *) calloc( 1, sizeof(GLvisual) );
  2219.     pea    $26.w
  2220.     pea    1.w
  2221.     jsr    _calloc
  2222.     addq.w    #$8,a7
  2223.     move.l    d0,a0
  2224. ;   if (!vis) 
  2225.     cmp.w    #0,a0
  2226.     bne.b    L368
  2227. L367
  2228.     moveq    #0,d0
  2229.     movem.l    (a7)+,d2-d7
  2230.     unlk    a5
  2231.     rts
  2232. L368
  2233. ;   vis->RGBAflag   = rgbFlag;
  2234.     move.b    $8(a5),(a0)
  2235. ;   vis->DBflag     = dbFlag;
  2236.     move.b    d4,1(a0)
  2237. ;   vis->StereoFlag = stereoFlag;
  2238.     move.b    $E(a5),2(a0)
  2239. ;   vis->RedBits    = redBits;
  2240.     move.l    $20(a5),4(a0)
  2241. ;   vis->GreenBits  = greenBits;
  2242.     move.l    $24(a5),$8(a0)
  2243. ;   vis->BlueBits   = blueBits;
  2244.     move.l    $28(a5),$C(a0)
  2245. ;   vis->AlphaBits  = alphaFlag ? 8*sizeof(GLubyte) : alphaBits;
  2246.     tst.b    d3
  2247.     beq.b    L370
  2248. L369
  2249.     moveq    #$8,d2
  2250. L370
  2251. L371
  2252.     move.l    d2,$10(a0)
  2253. ;   vis->IndexBits   = indexBits;
  2254.     move.l    $1C(a5),$14(a0)
  2255. ;   vis->DepthBits   = (depthBits>0) ? 8*sizeof(GLdepth) : 0;
  2256.     move.l    d7,d0
  2257.     cmp.l    #0,d0
  2258.     ble.b    L373
  2259. L372
  2260.     moveq    #$10,d0
  2261.     bra.b    L374
  2262. L373
  2263.     moveq    #0,d0
  2264. L374
  2265.     move.l    d0,$1C(a0)
  2266. ;   vis->AccumBits   = (accumBits>0) ? 8*sizeof(GLaccum) : 0;
  2267.     cmp.l    #0,d5
  2268.     ble.b    L376
  2269. L375
  2270.     moveq    #$10,d0
  2271.     bra.b    L377
  2272. L376
  2273.     moveq    #0,d0
  2274. L377
  2275.     move.l    d0,$18(a0)
  2276. ;   vis->StencilBits = (stencilBits>0) ? 8*sizeof(GLstencil) : 0;
  2277.     move.l    d6,d0
  2278.     cmp.l    #0,d0
  2279.     ble.b    L379
  2280. L378
  2281.     moveq    #$8,d0
  2282.     bra.b    L380
  2283. L379
  2284.     moveq    #0,d0
  2285. L380
  2286.     move.l    d0,$20(a0)
  2287. ;   if (alphaFlag) 
  2288.     tst.b    d3
  2289.     beq.b    L383
  2290. L381
  2291. ;      vis->FrontAlphaEnabled = GL_TRUE;
  2292.     move.b    #1,$24(a0)
  2293. ;      if (dbFlag) 
  2294.     tst.b    d4
  2295.     beq.b    L383
  2296. L382
  2297. ;         vis->BackAlphaEnabled = GL_TRUE;
  2298.     move.b    #1,$25(a0)
  2299. L383
  2300.     move.l    a0,d0
  2301.     movem.l    (a7)+,d2-d7
  2302.     unlk    a5
  2303.     rts
  2304.  
  2305. L357
  2306.     dc.b    'stereo not supported',0
  2307.  
  2308.     SECTION "_gl_destroy_visual:0",CODE
  2309.  
  2310.  
  2311. ;void gl_destroy_visual( GLvisual *vis )
  2312.     XDEF    _gl_destroy_visual
  2313. _gl_destroy_visual
  2314.     move.l    4(a7),a0
  2315. L385
  2316. ;   free( vis );
  2317.     move.l    a0,-(a7)
  2318.     jsr    _free
  2319.     addq.w    #4,a7
  2320.     rts
  2321.  
  2322.     SECTION "_alloc_proxy_textures:0",CODE
  2323.  
  2324.  
  2325. ;static GLboolean alloc_proxy_textures( GLcontext *ctx )
  2326. _alloc_proxy_textures
  2327.     movem.l    d2/d3/a2,-(a7)
  2328.     move.l    $10(a7),a2
  2329. L386
  2330. ;   ctx->Texture.Proxy1D = gl_alloc_texture_object(NULL, 0, 1);
  2331.     pea    1.w
  2332.     clr.l    -(a7)
  2333.     clr.l    -(a7)
  2334.     jsr    _gl_alloc_texture_object
  2335.     add.w    #$C,a7
  2336.     move.l    a2,a1
  2337.     add.l    #$E040,a1
  2338.     move.l    d0,(a1)
  2339. ;   if (!ctx->Texture.Proxy1D) 
  2340.     move.l    a2,a0
  2341.     add.l    #$DEBA,a0
  2342.     tst.l    $186(a0)
  2343.     bne.b    L388
  2344. L387
  2345.     moveq    #0,d0
  2346.     movem.l    (a7)+,d2/d3/a2
  2347.     rts
  2348. L388
  2349. ;   ctx->Texture.Proxy2D = gl_alloc_texture_object(NULL, 0, 2);
  2350.     pea    2.w
  2351.     clr.l    -(a7)
  2352.     clr.l    -(a7)
  2353.     jsr    _gl_alloc_texture_object
  2354.     add.w    #$C,a7
  2355.     move.l    a2,a1
  2356.     add.l    #$E044,a1
  2357.     move.l    d0,(a1)
  2358. ;   if (!ctx->Texture.Proxy2D) 
  2359.     move.l    a2,a0
  2360.     add.l    #$DEBA,a0
  2361.     tst.l    $18A(a0)
  2362.     bne.b    L390
  2363. L389
  2364. ;      gl_free_texture_object(NULL, ctx->Texture.Proxy1D);
  2365.     move.l    a2,a0
  2366.     add.l    #$DEBA,a0
  2367.     move.l    $186(a0),-(a7)
  2368.     clr.l    -(a7)
  2369.     jsr    _gl_free_texture_object
  2370.     addq.w    #$8,a7
  2371.     moveq    #0,d0
  2372.     movem.l    (a7)+,d2/d3/a2
  2373.     rts
  2374. L390
  2375. ;   ctx->Texture.Proxy3D = gl_alloc_texture_object(NULL, 0, 3);
  2376.     pea    3.w
  2377.     clr.l    -(a7)
  2378.     clr.l    -(a7)
  2379.     jsr    _gl_alloc_texture_object
  2380.     add.w    #$C,a7
  2381.     move.l    a2,a1
  2382.     add.l    #$E048,a1
  2383.     move.l    d0,(a1)
  2384. ;   if (!ctx->Texture.Proxy3D) 
  2385.     move.l    a2,a0
  2386.     add.l    #$DEBA,a0
  2387.     tst.l    $18E(a0)
  2388.     bne.b    L392
  2389. L391
  2390. ;      gl_free_texture_object(NULL, ctx->Texture.Proxy1D);
  2391.     move.l    a2,a0
  2392.     add.l    #$DEBA,a0
  2393.     move.l    $186(a0),-(a7)
  2394.     clr.l    -(a7)
  2395.     jsr    _gl_free_texture_object
  2396.     addq.w    #$8,a7
  2397. ;      gl_free_texture_object(NULL, ctx->Texture.Proxy2D);
  2398.     move.l    a2,a0
  2399.     add.l    #$DEBA,a0
  2400.     move.l    $18A(a0),-(a7)
  2401.     clr.l    -(a7)
  2402.     jsr    _gl_free_texture_object
  2403.     addq.w    #$8,a7
  2404.     moveq    #0,d0
  2405.     movem.l    (a7)+,d2/d3/a2
  2406.     rts
  2407. L392
  2408. ;   out_of_memory = GL_FALSE;
  2409.     moveq    #0,d3
  2410. ;   for (i=0;
  2411.     moveq    #0,d2
  2412.     bra    L398
  2413. L393
  2414. ;      ctx->Texture.Proxy1D->Image[i] = gl_alloc_texture_image()
  2415.     jsr    _gl_alloc_texture_image
  2416.     move.l    a2,a0
  2417.     add.l    #$DEBA,a0
  2418.     move.l    $186(a0),a0
  2419.     lea    $50(a0),a0
  2420.     move.l    d0,0(a0,d2.l*4)
  2421. ;      ctx->Texture.Proxy2D->Image[i] = gl_alloc_texture_image()
  2422.     jsr    _gl_alloc_texture_image
  2423.     move.l    a2,a0
  2424.     add.l    #$DEBA,a0
  2425.     move.l    $18A(a0),a0
  2426.     lea    $50(a0),a0
  2427.     move.l    d0,0(a0,d2.l*4)
  2428. ;      ctx->Texture.Proxy3D->Image[i] = gl_alloc_texture_image()
  2429.     jsr    _gl_alloc_texture_image
  2430.     move.l    a2,a0
  2431.     add.l    #$DEBA,a0
  2432.     move.l    $18E(a0),a0
  2433.     lea    $50(a0),a0
  2434.     move.l    d0,0(a0,d2.l*4)
  2435. ;      if (!ctx->Texture.Proxy1D->Image[i]
  2436.     move.l    a2,a0
  2437.     add.l    #$DEBA,a0
  2438.     move.l    $186(a0),a0
  2439.     lea    $50(a0),a0
  2440.     tst.l    0(a0,d2.l*4)
  2441.     beq.b    L396
  2442. L394
  2443.     move.l    a2,a0
  2444.     add.l    #$DEBA,a0
  2445.     move.l    $18A(a0),a0
  2446.     lea    $50(a0),a0
  2447.     tst.l    0(a0,d2.l*4)
  2448.     beq.b    L396
  2449. L395
  2450.     move.l    a2,a0
  2451.     add.l    #$DEBA,a0
  2452.     move.l    $18E(a0),a0
  2453.     lea    $50(a0),a0
  2454.     tst.l    0(a0,d2.l*4)
  2455.     bne.b    L397
  2456. L396
  2457. ;         out_of_memory = GL_TRUE;
  2458.     moveq    #1,d3
  2459. L397
  2460.     addq.l    #1,d2
  2461. L398
  2462.     cmp.l    #$B,d2
  2463.     blt    L393
  2464. L399
  2465. ;   if (out_of_memory) 
  2466.     tst.b    d3
  2467.     beq    L410
  2468. L400
  2469. ;      for (i=0;
  2470.     moveq    #0,d2
  2471.     bra    L408
  2472. L401
  2473. ;         if (ctx->Texture.Proxy1D->Image[i]) 
  2474.     move.l    a2,a0
  2475.     add.l    #$DEBA,a0
  2476.     move.l    $186(a0),a0
  2477.     lea    $50(a0),a0
  2478.     tst.l    0(a0,d2.l*4)
  2479.     beq.b    L403
  2480. L402
  2481. ;            gl_free_texture_image(ctx->Texture.Proxy1D->
  2482.     move.l    a2,a0
  2483.     add.l    #$DEBA,a0
  2484.     move.l    $186(a0),a0
  2485.     lea    $50(a0),a0
  2486.     move.l    0(a0,d2.l*4),-(a7)
  2487.     jsr    _gl_free_texture_image
  2488.     addq.w    #4,a7
  2489. L403
  2490. ;         if (ctx->Texture.Proxy2D->Image[i]) 
  2491.     move.l    a2,a0
  2492.     add.l    #$DEBA,a0
  2493.     move.l    $18A(a0),a0
  2494.     lea    $50(a0),a0
  2495.     tst.l    0(a0,d2.l*4)
  2496.     beq.b    L405
  2497. L404
  2498. ;            gl_free_texture_image(ctx->Texture.Proxy2D->
  2499.     move.l    a2,a0
  2500.     add.l    #$DEBA,a0
  2501.     move.l    $18A(a0),a0
  2502.     lea    $50(a0),a0
  2503.     move.l    0(a0,d2.l*4),-(a7)
  2504.     jsr    _gl_free_texture_image
  2505.     addq.w    #4,a7
  2506. L405
  2507. ;         if (ctx->Texture.Proxy3D->Image[i]) 
  2508.     move.l    a2,a0
  2509.     add.l    #$DEBA,a0
  2510.     move.l    $18E(a0),a0
  2511.     lea    $50(a0),a0
  2512.     tst.l    0(a0,d2.l*4)
  2513.     beq.b    L407
  2514. L406
  2515. ;            gl_free_texture_image(ctx->Texture.Proxy3D->
  2516.     move.l    a2,a0
  2517.     add.l    #$DEBA,a0
  2518.     move.l    $18E(a0),a0
  2519.     lea    $50(a0),a0
  2520.     move.l    0(a0,d2.l*4),-(a7)
  2521.     jsr    _gl_free_texture_image
  2522.     addq.w    #4,a7
  2523. L407
  2524.     addq.l    #1,d2
  2525. L408
  2526.     cmp.l    #$B,d2
  2527.     blt    L401
  2528. L409
  2529. ;      gl_free_texture_object(NULL, ctx->Texture.Proxy1D);
  2530.     move.l    a2,a0
  2531.     add.l    #$DEBA,a0
  2532.     move.l    $186(a0),-(a7)
  2533.     clr.l    -(a7)
  2534.     jsr    _gl_free_texture_object
  2535.     addq.w    #$8,a7
  2536. ;      gl_free_texture_object(NULL, ctx->Texture.Proxy2D);
  2537.     move.l    a2,a0
  2538.     add.l    #$DEBA,a0
  2539.     move.l    $18A(a0),-(a7)
  2540.     clr.l    -(a7)
  2541.     jsr    _gl_free_texture_object
  2542.     addq.w    #$8,a7
  2543. ;      gl_free_texture_object(NULL, ctx->Texture.Proxy3D);
  2544.     move.l    a2,a0
  2545.     add.l    #$DEBA,a0
  2546.     move.l    $18E(a0),-(a7)
  2547.     clr.l    -(a7)
  2548.     jsr    _gl_free_texture_object
  2549.     addq.w    #$8,a7
  2550.     moveq    #0,d0
  2551.     movem.l    (a7)+,d2/d3/a2
  2552.     rts
  2553. L410
  2554.     moveq    #1,d0
  2555.     movem.l    (a7)+,d2/d3/a2
  2556.     rts
  2557.  
  2558.     SECTION "_gl_create_context:0",CODE
  2559.  
  2560.  
  2561. ;GLcontext *gl_create_context( GLvisual *visual,
  2562.     XDEF    _gl_create_context
  2563. _gl_create_context
  2564. L427    EQU    -4
  2565.     link    a5,#L427
  2566.     movem.l    d2/a2-a4,-(a7)
  2567.     move.b    $14(a5),d2
  2568.     move.l    $C(a5),a3
  2569.     move.l    $8(a5),a4
  2570. L411
  2571. ;   gl_init_math();
  2572.     jsr    _gl_init_math
  2573. ;   gl_init_lists();
  2574.     jsr    _gl_init_lists
  2575. ;   gl_init_eval();
  2576.     jsr    _gl_init_eval
  2577. ;   ctx = (GLcontext *) calloc( 1, sizeof(GLcontext) );
  2578.     move.l    #$E99E,-(a7)
  2579.     pea    1.w
  2580.     jsr    _calloc
  2581.     addq.w    #$8,a7
  2582.     move.l    d0,a2
  2583. ;   if (!ctx) 
  2584.     cmp.w    #0,a2
  2585.     bne.b    L413
  2586. L412
  2587.     moveq    #0,d0
  2588.     movem.l    (a7)+,d2/a2-a4
  2589.     unlk    a5
  2590.     rts
  2591. L413
  2592. ;   ctx->DriverCtx = driver_ctx;
  2593.     move.l    $10(a5),$9EC(a2)
  2594. ;   ctx->Visual = visual;
  2595.     move.l    a4,$8F8(a2)
  2596. ;   ctx->Buffer = NULL;
  2597.     clr.l    $8FC(a2)
  2598. ;   ctx->VB = gl_alloc_vb();
  2599.     jsr    _gl_alloc_vb
  2600.     move.l    a2,a1
  2601.     add.l    #$E994,a1
  2602.     move.l    d0,(a1)
  2603. ;   if (!ctx->VB) 
  2604.     move.l    a2,a1
  2605.     add.l    #$E994,a1
  2606.     tst.l    (a1)
  2607.     bne.b    L415
  2608. L414
  2609. ;      free( ctx );
  2610.     move.l    a2,-(a7)
  2611.     jsr    _free
  2612.     addq.w    #4,a7
  2613.     moveq    #0,d0
  2614.     movem.l    (a7)+,d2/a2-a4
  2615.     unlk    a5
  2616.     rts
  2617. L415
  2618. ;   ctx->PB = gl_alloc_pb();
  2619.     jsr    _gl_alloc_pb
  2620.     move.l    a2,a1
  2621.     add.l    #$E998,a1
  2622.     move.l    d0,(a1)
  2623. ;   if (!ctx->PB) 
  2624.     move.l    a2,a1
  2625.     add.l    #$E998,a1
  2626.     tst.l    (a1)
  2627.     bne.b    L417
  2628. L416
  2629. ;      free( ctx->VB );
  2630.     move.l    a2,a1
  2631.     add.l    #$E994,a1
  2632.     move.l    (a1),-(a7)
  2633.     jsr    _free
  2634.     addq.w    #4,a7
  2635. ;      free( ctx );
  2636.     move.l    a2,-(a7)
  2637.     jsr    _free
  2638.     addq.w    #4,a7
  2639.     moveq    #0,d0
  2640.     movem.l    (a7)+,d2/a2-a4
  2641.     unlk    a5
  2642.     rts
  2643. L417
  2644. ;   if (share_list) 
  2645.     cmp.w    #0,a3
  2646.     beq.b    L419
  2647. L418
  2648. ;      ctx->Shared = share_list->Shared;
  2649.     move.l    a3,a1
  2650.     move.l    (a1),(a2)
  2651.     bra.b    L421
  2652. L419
  2653. ;      ctx->Shared = alloc_shared_state();
  2654.     jsr    _alloc_shared_state
  2655.     move.l    d0,(a2)
  2656. ;      if (!ctx->Shared) 
  2657.     tst.l    (a2)
  2658.     bne.b    L421
  2659. L420
  2660. ;         free(ctx->VB);
  2661.     move.l    a2,a1
  2662.     add.l    #$E994,a1
  2663.     move.l    (a1),-(a7)
  2664.     jsr    _free
  2665.     addq.w    #4,a7
  2666. ;         free(ctx->PB);
  2667.     move.l    a2,a1
  2668.     add.l    #$E998,a1
  2669.     move.l    (a1),-(a7)
  2670.     jsr    _free
  2671.     addq.w    #4,a7
  2672. ;         free(ctx);
  2673.     move.l    a2,-(a7)
  2674.     jsr    _free
  2675.     addq.w    #4,a7
  2676.     moveq    #0,d0
  2677.     movem.l    (a7)+,d2/a2-a4
  2678.     unlk    a5
  2679.     rts
  2680. L421
  2681. ;   ctx->Shared->RefCount++;
  2682.     move.l    (a2),a0
  2683.     addq.l    #1,(a0)
  2684. ;   initialize_context( ctx );
  2685.     move.l    a2,-(a7)
  2686.     jsr    _initialize_context
  2687.     addq.w    #4,a7
  2688. ;   ctx->DirectContext = direct;
  2689.     move.l    a2,a0
  2690.     add.l    #$E95E,a0
  2691.     move.b    d2,(a0)
  2692. ;   if (visual->DBflag) 
  2693.     move.l    a4,a0
  2694.     tst.b    1(a0)
  2695.     beq.b    L423
  2696. L422
  2697. ;      ctx->Color.DrawBuffer = GL_BACK;
  2698.     move.l    #$405,$21E2(a2)
  2699. ;      ctx->Pixel.ReadBuffer = GL_BACK;
  2700.     move.l    a2,a0
  2701.     add.l    #$B168,a0
  2702.     move.l    #$405,(a0)
  2703.     bra.b    L424
  2704. L423
  2705. ;      ctx->Color.DrawBuffer = GL_FRONT;
  2706.     move.l    #$404,$21E2(a2)
  2707. ;      ctx->Pixel.ReadBuffer = GL_FRONT;
  2708.     move.l    a2,a0
  2709.     add.l    #$B168,a0
  2710.     move.l    #$404,(a0)
  2711. L424
  2712. ;   if (!alloc_proxy_textures(ctx)) 
  2713.     move.l    a2,-(a7)
  2714.     jsr    _alloc_proxy_textures
  2715.     addq.w    #4,a7
  2716.     tst.b    d0
  2717.     bne.b    L426
  2718. L425
  2719. ;      free_shared_state(ctx, ctx->Shared);
  2720.     move.l    (a2),-(a7)
  2721.     move.l    a2,-(a7)
  2722.     jsr    _free_shared_state
  2723.     addq.w    #$8,a7
  2724. ;      free(ctx->VB);
  2725.     move.l    a2,a1
  2726.     add.l    #$E994,a1
  2727.     move.l    (a1),-(a7)
  2728.     jsr    _free
  2729.     addq.w    #4,a7
  2730. ;      free(ctx->PB);
  2731.     move.l    a2,a1
  2732.     add.l    #$E998,a1
  2733.     move.l    (a1),-(a7)
  2734.     jsr    _free
  2735.     addq.w    #4,a7
  2736. ;      free(ctx);
  2737.     move.l    a2,-(a7)
  2738.     jsr    _free
  2739.     addq.w    #4,a7
  2740.     moveq    #0,d0
  2741.     movem.l    (a7)+,d2/a2-a4
  2742.     unlk    a5
  2743.     rts
  2744. L426
  2745. ;   gl_init_api_function_pointers( ctx );
  2746.     move.l    a2,-(a7)
  2747.     jsr    _gl_init_api_function_pointers
  2748.     addq.w    #4,a7
  2749. ;   ctx->API = ctx->Exec;
  2750.     lea    $5FC(a2),a1
  2751.     lea    4(a2),a0
  2752.     move.w    #$BE,d0
  2753. L428
  2754.     move.l    (a1)+,(a0)+
  2755.     dbra    d0,L428
  2756.     move.l    a2,d0
  2757.     movem.l    (a7)+,d2/a2-a4
  2758.     unlk    a5
  2759.     rts
  2760.  
  2761.     SECTION "_gl_destroy_context:0",CODE
  2762.  
  2763.  
  2764. ;void gl_destroy_context( GLcontext *ctx )
  2765.     XDEF    _gl_destroy_context
  2766. _gl_destroy_context
  2767.     move.l    a2,-(a7)
  2768.     move.l    $8(a7),a2
  2769. L429
  2770. ;   if (ctx) 
  2771.     cmp.w    #0,a2
  2772.     beq    L470
  2773. L430
  2774. ;      free( ctx->PB );
  2775.     move.l    a2,a1
  2776.     add.l    #$E998,a1
  2777.     move.l    (a1),-(a7)
  2778.     jsr    _free
  2779.     addq.w    #4,a7
  2780. ;      free( ctx->VB );
  2781.     move.l    a2,a1
  2782.     add.l    #$E994,a1
  2783.     move.l    (a1),-(a7)
  2784.     jsr    _free
  2785.     addq.w    #4,a7
  2786. ;      ctx->Shared->RefCount--;
  2787.     move.l    (a2),a0
  2788.     subq.l    #1,(a0)
  2789. ;      if (ctx->Shared->RefCount==0) 
  2790.     move.l    (a2),a0
  2791.     tst.l    (a0)
  2792.     bne.b    L432
  2793. L431
  2794. ;     free_shared_state( ctx, ctx->Shared );
  2795.     move.l    (a2),-(a7)
  2796.     move.l    a2,-(a7)
  2797.     jsr    _free_shared_state
  2798.     addq.w    #$8,a7
  2799. L432
  2800. ;      gl_free_texture_object( NULL, ctx->Texture.Proxy1D );
  2801.     move.l    a2,a0
  2802.     add.l    #$DEBA,a0
  2803.     move.l    $186(a0),-(a7)
  2804.     clr.l    -(a7)
  2805.     jsr    _gl_free_texture_object
  2806.     addq.w    #$8,a7
  2807. ;      gl_free_texture_object( NULL, ctx->Texture.Proxy2D );
  2808.     move.l    a2,a0
  2809.     add.l    #$DEBA,a0
  2810.     move.l    $18A(a0),-(a7)
  2811.     clr.l    -(a7)
  2812.     jsr    _gl_free_texture_object
  2813.     addq.w    #$8,a7
  2814. ;      gl_free_texture_object( NULL, ctx->Texture.Proxy3D );
  2815.     move.l    a2,a0
  2816.     add.l    #$DEBA,a0
  2817.     move.l    $18E(a0),-(a7)
  2818.     clr.l    -(a7)
  2819.     jsr    _gl_free_texture_object
  2820.     addq.w    #$8,a7
  2821. ;      if (ctx->EvalMap.Map1Vertex3.Points)
  2822.     move.l    a2,a0
  2823.     add.l    #$E678,a0
  2824.     tst.l    $C(a0)
  2825.     beq.b    L434
  2826. L433
  2827. ;         free( ctx->EvalMap.Map1Vertex3.Points );
  2828.     move.l    a2,a0
  2829.     add.l    #$E678,a0
  2830.     move.l    $C(a0),-(a7)
  2831.     jsr    _free
  2832.     addq.w    #4,a7
  2833. L434
  2834. ;      if (ctx->EvalMap.Map1Vertex4.Points)
  2835.     move.l    a2,a0
  2836.     add.l    #$E68A,a0
  2837.     tst.l    $C(a0)
  2838.     beq.b    L436
  2839. L435
  2840. ;         free( ctx->EvalMap.Map1Vertex4.Points );
  2841.     move.l    a2,a0
  2842.     add.l    #$E68A,a0
  2843.     move.l    $C(a0),-(a7)
  2844.     jsr    _free
  2845.     addq.w    #4,a7
  2846. L436
  2847. ;      if (ctx->EvalMap.Map1Index.Points)
  2848.     move.l    a2,a0
  2849.     add.l    #$E69C,a0
  2850.     tst.l    $C(a0)
  2851.     beq.b    L438
  2852. L437
  2853. ;         free( ctx->EvalMap.Map1Index.Points );
  2854.     move.l    a2,a0
  2855.     add.l    #$E69C,a0
  2856.     move.l    $C(a0),-(a7)
  2857.     jsr    _free
  2858.     addq.w    #4,a7
  2859. L438
  2860. ;      if (ctx->EvalMap.Map1Color4.Points)
  2861.     move.l    a2,a0
  2862.     add.l    #$E6AE,a0
  2863.     tst.l    $C(a0)
  2864.     beq.b    L440
  2865. L439
  2866. ;         free( ctx->EvalMap.Map1Color4.Points );
  2867.     move.l    a2,a0
  2868.     add.l    #$E6AE,a0
  2869.     move.l    $C(a0),-(a7)
  2870.     jsr    _free
  2871.     addq.w    #4,a7
  2872. L440
  2873. ;      if (ctx->EvalMap.Map1Normal.Points)
  2874.     move.l    a2,a0
  2875.     add.l    #$E6C0,a0
  2876.     tst.l    $C(a0)
  2877.     beq.b    L442
  2878. L441
  2879. ;         free( ctx->EvalMap.Map1Normal.Points );
  2880.     move.l    a2,a0
  2881.     add.l    #$E6C0,a0
  2882.     move.l    $C(a0),-(a7)
  2883.     jsr    _free
  2884.     addq.w    #4,a7
  2885. L442
  2886. ;      if (ctx->EvalMap.Map1Texture1.Points)
  2887.     move.l    a2,a0
  2888.     add.l    #$E6D2,a0
  2889.     tst.l    $C(a0)
  2890.     beq.b    L444
  2891. L443
  2892. ;         free( ctx->EvalMap.Map1Texture1.Points );
  2893.     move.l    a2,a0
  2894.     add.l    #$E6D2,a0
  2895.     move.l    $C(a0),-(a7)
  2896.     jsr    _free
  2897.     addq.w    #4,a7
  2898. L444
  2899. ;      if (ctx->EvalMap.Map1Texture2.Points)
  2900.     move.l    a2,a0
  2901.     add.l    #$E6E4,a0
  2902.     tst.l    $C(a0)
  2903.     beq.b    L446
  2904. L445
  2905. ;         free( ctx->EvalMap.Map1Texture2.Points );
  2906.     move.l    a2,a0
  2907.     add.l    #$E6E4,a0
  2908.     move.l    $C(a0),-(a7)
  2909.     jsr    _free
  2910.     addq.w    #4,a7
  2911. L446
  2912. ;      CC->Buffer = NULL;
  2913.     move.l    a2,a0
  2914.     add.l    #$E6F6,a0
  2915.     tst.l    $C(a0)
  2916.     beq.b    L448
  2917. L447
  2918. ;         free( ctx->EvalMap.Map1Texture3.Points );
  2919.     move.l    a2,a0
  2920.     add.l    #$E6F6,a0
  2921.     move.l    $C(a0),-(a7)
  2922.     jsr    _free
  2923.     addq.w    #4,a7
  2924. L448
  2925. ;      if (ctx->EvalMap.Map1Texture4.Points)
  2926.     move.l    a2,a0
  2927.     add.l    #$E708,a0
  2928.     tst.l    $C(a0)
  2929.     beq.b    L450
  2930. L449
  2931. ;         free( ctx->EvalMap.Map1Texture4.Points );
  2932.     move.l    a2,a0
  2933.     add.l    #$E708,a0
  2934.     move.l    $C(a0),-(a7)
  2935.     jsr    _free
  2936.     addq.w    #4,a7
  2937. L450
  2938. ;      if (ctx->EvalMap.Map2Vertex3.Points)
  2939.     move.l    a2,a0
  2940.     add.l    #$E71A,a0
  2941.     tst.l    $18(a0)
  2942.     beq.b    L452
  2943. L451
  2944. ;         free( ctx->EvalMap.Map2Vertex3.Points );
  2945.     move.l    a2,a0
  2946.     add.l    #$E71A,a0
  2947.     move.l    $18(a0),-(a7)
  2948.     jsr    _free
  2949.     addq.w    #4,a7
  2950. L452
  2951. ;      if (ctx->EvalMap.Map2Vertex4.Points)
  2952.     move.l    a2,a0
  2953.     add.l    #$E738,a0
  2954.     tst.l    $18(a0)
  2955.     beq.b    L454
  2956. L453
  2957. ;         free( ctx->EvalMap.Map2Vertex4.Points );
  2958.     move.l    a2,a0
  2959.     add.l    #$E738,a0
  2960.     move.l    $18(a0),-(a7)
  2961.     jsr    _free
  2962.     addq.w    #4,a7
  2963. L454
  2964. ;      if (ctx->EvalMap.Map2Index.Points)
  2965.     move.l    a2,a0
  2966.     add.l    #$E756,a0
  2967.     tst.l    $18(a0)
  2968.     beq.b    L456
  2969. L455
  2970. ;         free( ctx->EvalMap.Map2Index.Points );
  2971.     move.l    a2,a0
  2972.     add.l    #$E756,a0
  2973.     move.l    $18(a0),-(a7)
  2974.     jsr    _free
  2975.     addq.w    #4,a7
  2976. L456
  2977. ;      if (ctx->EvalMap.Map2Color4.Points)
  2978.     move.l    a2,a0
  2979.     add.l    #$E774,a0
  2980.     tst.l    $18(a0)
  2981.     beq.b    L458
  2982. L457
  2983. ;         free( ctx->EvalMap.Map2Color4.Points );
  2984.     move.l    a2,a0
  2985.     add.l    #$E774,a0
  2986.     move.l    $18(a0),-(a7)
  2987.     jsr    _free
  2988.     addq.w    #4,a7
  2989. L458
  2990. ;      if (ctx->EvalMap.Map2Normal.Points)
  2991.     move.l    a2,a0
  2992.     add.l    #$E792,a0
  2993.     tst.l    $18(a0)
  2994.     beq.b    L460
  2995. L459
  2996. ;         free( ctx->EvalMap.Map2Normal.Points );
  2997.     move.l    a2,a0
  2998.     add.l    #$E792,a0
  2999.     move.l    $18(a0),-(a7)
  3000.     jsr    _free
  3001.     addq.w    #4,a7
  3002. L460
  3003. ;      if (ctx->EvalMap.Map2Texture1.Points)
  3004.     move.l    a2,a0
  3005.     add.l    #$E7B0,a0
  3006.     tst.l    $18(a0)
  3007.     beq.b    L462
  3008. L461
  3009. ;         free( ctx->EvalMap.Map2Texture1.Points );
  3010.     move.l    a2,a0
  3011.     add.l    #$E7B0,a0
  3012.     move.l    $18(a0),-(a7)
  3013.     jsr    _free
  3014.     addq.w    #4,a7
  3015. L462
  3016. ;      if (ctx->EvalMap.Map2Texture2.Points)
  3017.     move.l    a2,a0
  3018.     add.l    #$E7CE,a0
  3019.     tst.l    $18(a0)
  3020.     beq.b    L464
  3021. L463
  3022. ;         free( ctx->EvalMap.Map2Texture2.Points );
  3023.     move.l    a2,a0
  3024.     add.l    #$E7CE,a0
  3025.     move.l    $18(a0),-(a7)
  3026.     jsr    _free
  3027.     addq.w    #4,a7
  3028. L464
  3029. ;      if (ctx->EvalMap.Map2Texture3.Points)
  3030.     move.l    a2,a0
  3031.     add.l    #$E7EC,a0
  3032.     tst.l    $18(a0)
  3033.     beq.b    L466
  3034. L465
  3035. ;         free( ctx->EvalMap.Map2Texture3.Points );
  3036.     move.l    a2,a0
  3037.     add.l    #$E7EC,a0
  3038.     move.l    $18(a0),-(a7)
  3039.     jsr    _free
  3040.     addq.w    #4,a7
  3041. L466
  3042. ;      if (ctx->EvalMap.Map2Texture4.Points)
  3043.     move.l    a2,a0
  3044.     add.l    #$E80A,a0
  3045.     tst.l    $18(a0)
  3046.     beq.b    L468
  3047. L467
  3048. ;         free( ctx->EvalMap.Map2Texture4.Points );
  3049.     move.l    a2,a0
  3050.     add.l    #$E80A,a0
  3051.     move.l    $18(a0),-(a7)
  3052.     jsr    _free
  3053.     addq.w    #4,a7
  3054. L468
  3055. ;      free( (void *) ctx );
  3056.     move.l    a2,-(a7)
  3057.     jsr    _free
  3058.     addq.w    #4,a7
  3059. ;      if (ctx==CC) 
  3060.     cmp.l    _CC(a6),a2
  3061.     bne.b    L470
  3062. L469
  3063. ;         CC = NULL;
  3064.     clr.l    _CC(a6)
  3065. L470
  3066.     move.l    (a7)+,a2
  3067.     rts
  3068.  
  3069.     SECTION "_gl_create_framebuffer:0",CODE
  3070.  
  3071.  
  3072. ;GLframebuffer *gl_create_framebuffer( GLvisual *visual )
  3073.     XDEF    _gl_create_framebuffer
  3074. _gl_create_framebuffer
  3075.     move.l    a2,-(a7)
  3076.     move.l    $8(a7),a2
  3077. L471
  3078. ;   buffer = (GLframebuffer *) calloc( 1, sizeof(GLframebuffer) );
  3079.     pea    $34.w
  3080.     pea    1.w
  3081.     jsr    _calloc
  3082.     addq.w    #$8,a7
  3083.     move.l    d0,a0
  3084. ;   if (!buffer) 
  3085.     cmp.w    #0,a0
  3086.     bne.b    L473
  3087. L472
  3088.     moveq    #0,d0
  3089.     move.l    (a7)+,a2
  3090.     rts
  3091. L473
  3092. ;   buffer->Visual = visual;
  3093.     move.l    a2,(a0)
  3094.     move.l    a0,d0
  3095.     move.l    (a7)+,a2
  3096.     rts
  3097.  
  3098.     SECTION "_gl_destroy_framebuffer:0",CODE
  3099.  
  3100.  
  3101. ;void gl_destroy_framebuffer( GLframebuffer *buffer )
  3102.     XDEF    _gl_destroy_framebuffer
  3103. _gl_destroy_framebuffer
  3104.     move.l    a2,-(a7)
  3105.     move.l    $8(a7),a2
  3106. L474
  3107. ;   if (buffer) 
  3108.     cmp.w    #0,a2
  3109.     beq.b    L486
  3110. L475
  3111. ;      if (buffer->Depth) 
  3112.     tst.l    $C(a2)
  3113.     beq.b    L477
  3114. L476
  3115. ;         free( buffer->Depth );
  3116.     move.l    $C(a2),-(a7)
  3117.     jsr    _free
  3118.     addq.w    #4,a7
  3119. L477
  3120. ;      if (buffer->Accum) 
  3121.     tst.l    $14(a2)
  3122.     beq.b    L479
  3123. L478
  3124. ;         free( buffer->Accum );
  3125.     move.l    $14(a2),-(a7)
  3126.     jsr    _free
  3127.     addq.w    #4,a7
  3128. L479
  3129. ;      if (buffer->Stencil) 
  3130.     tst.l    $10(a2)
  3131.     beq.b    L481
  3132. L480
  3133. ;         free( buffer->Stencil );
  3134.     move.l    $10(a2),-(a7)
  3135.     jsr    _free
  3136.     addq.w    #4,a7
  3137. L481
  3138. ;      if (buffer->FrontAlpha) 
  3139.     tst.l    $18(a2)
  3140.     beq.b    L483
  3141. L482
  3142. ;         free( buffer->FrontAlpha );
  3143.     move.l    $18(a2),-(a7)
  3144.     jsr    _free
  3145.     addq.w    #4,a7
  3146. L483
  3147. ;      if (buffer->BackAlpha) 
  3148.     tst.l    $1C(a2)
  3149.     beq.b    L485
  3150. L484
  3151. ;         free( buffer->BackAlpha );
  3152.     move.l    $1C(a2),-(a7)
  3153.     jsr    _free
  3154.     addq.w    #4,a7
  3155. L485
  3156. ;      free(buffer);
  3157.     move.l    a2,-(a7)
  3158.     jsr    _free
  3159.     addq.w    #4,a7
  3160. L486
  3161.     move.l    (a7)+,a2
  3162.     rts
  3163.  
  3164.     SECTION "_gl_make_current:0",CODE
  3165.  
  3166.  
  3167. ;void gl_make_current( GLcontext *ctx, GLframebuffer *buffer )
  3168.     XDEF    _gl_make_current
  3169. _gl_make_current
  3170.     movem.l    a2/a3,-(a7)
  3171.     movem.l    $C(a7),a0/a1
  3172. L487
  3173. ;   if (CC && CC->Buffer) 
  3174.     tst.l    _CC(a6)
  3175.     beq.b    L490
  3176. L488
  3177.     move.l    _CC(a6),a2
  3178.     tst.l    $8FC(a2)
  3179.     beq.b    L490
  3180. L489
  3181. ;      CC->Buffer = NULL;
  3182.     move.l    _CC(a6),a3
  3183.     clr.l    $8FC(a3)
  3184. L490
  3185. ;   CC = ctx;
  3186.     move.l    a0,_CC(a6)
  3187. ;   if (ctx && buffer) 
  3188.     cmp.w    #0,a0
  3189.     beq.b    L493
  3190. L491
  3191.     cmp.w    #0,a1
  3192.     beq.b    L493
  3193. L492
  3194. ;      ctx->Buffer = buffer;
  3195.     move.l    a1,$8FC(a0)
  3196. ;      ctx->NewState = NEW_ALL;
  3197.     move.l    a0,a1
  3198.     add.l    #$E960,a1
  3199.     move.l    #$FF,(a1)
  3200. ;      gl_update_state( ctx );
  3201.     move.l    a0,-(a7)
  3202.     jsr    _gl_update_state
  3203.     addq.w    #4,a7
  3204. L493
  3205.     movem.l    (a7)+,a2/a3
  3206.     rts
  3207.  
  3208.     SECTION "_gl_get_current_context:0",CODE
  3209.  
  3210.  
  3211. ;GLcontext *gl_get_current_context( void )
  3212.     XDEF    _gl_get_current_context
  3213. _gl_get_current_context
  3214. L494
  3215.     move.l    _CC(a6),d0
  3216.     rts
  3217.  
  3218.     SECTION "_gl_copy_context:0",CODE
  3219.  
  3220.  
  3221. ;void gl_copy_context( const GLcontext *src, GLcontext *dst, GLuint m
  3222.     XDEF    _gl_copy_context
  3223. _gl_copy_context
  3224.     movem.l    d2/d3/a2/a3,-(a7)
  3225.     move.l    $1C(a7),d2
  3226.     move.l    $18(a7),a2
  3227.     move.l    $14(a7),a3
  3228. L495
  3229. ;   if (mask & GL_ACCUM_BUFFER_BIT) 
  3230.     move.l    d2,d0
  3231.     and.l    #$200,d0
  3232.     beq.b    L497
  3233. L496
  3234. ;Accum, &src->Accu
  3235.     pea    $10.w
  3236.     pea    $21B4(a3)
  3237.     pea    $21B4(a2)
  3238.     jsr    _q_memcpy
  3239.     add.w    #$C,a7
  3240. L497
  3241. ;   if (mask & GL_COLOR_BUFFER_BIT) 
  3242.     move.l    d2,d0
  3243.     and.l    #$4000,d0
  3244.     beq.b    L499
  3245. L498
  3246. ; &src->Color, siz
  3247.     pea    $52.w
  3248.     pea    $21C4(a3)
  3249.     pea    $21C4(a2)
  3250.     jsr    _q_memcpy
  3251.     add.w    #$C,a7
  3252. L499
  3253. ;   if (mask & GL_CURRENT_BIT) 
  3254.     move.l    d2,d0
  3255.     and.l    #1,d0
  3256.     beq.b    L501
  3257. L500
  3258. ;t, &src->Current,
  3259.     pea    $86.w
  3260.     pea    $2216(a3)
  3261.     pea    $2216(a2)
  3262.     jsr    _q_memcpy
  3263.     add.w    #$C,a7
  3264. L501
  3265. ;   if (mask & GL_DEPTH_BUFFER_BIT) 
  3266.     move.l    d2,d0
  3267.     and.l    #$100,d0
  3268.     beq.b    L503
  3269. L502
  3270. ; &src->Depth, siz
  3271.     pea    $A.w
  3272.     pea    $229C(a3)
  3273.     pea    $229C(a2)
  3274.     jsr    _q_memcpy
  3275.     add.w    #$C,a7
  3276. L503
  3277. ;   if (mask & GL_ENABLE_BIT) 
  3278. L504
  3279. ;   if (mask & GL_EVAL_BIT) 
  3280.     move.l    d2,d0
  3281.     and.l    #$10000,d0
  3282.     beq.b    L506
  3283. L505
  3284. ;t->Eval, &src->Ev
  3285.     pea    $38.w
  3286.     pea    $22A6(a3)
  3287.     pea    $22A6(a2)
  3288.     jsr    _q_memcpy
  3289.     add.w    #$C,a7
  3290. L506
  3291. ;   if (mask & GL_FOG_BIT) 
  3292.     move.l    d2,d0
  3293.     and.l    #$80,d0
  3294.     beq.b    L508
  3295. L507
  3296. ;&dst->Fog, &src->
  3297.     pea    $26.w
  3298.     pea    $22DE(a3)
  3299.     pea    $22DE(a2)
  3300.     jsr    _q_memcpy
  3301.     add.w    #$C,a7
  3302. L508
  3303. ;   if (mask & GL_HINT_BIT) 
  3304.     move.l    d2,d0
  3305.     and.l    #$8000,d0
  3306.     beq.b    L510
  3307. L509
  3308. ;t->Hint, &src->Hi
  3309.     pea    $14.w
  3310.     pea    $2304(a3)
  3311.     pea    $2304(a2)
  3312.     jsr    _q_memcpy
  3313.     add.w    #$C,a7
  3314. L510
  3315. ;   if (mask & GL_LIGHTING_BIT) 
  3316.     move.l    d2,d0
  3317.     and.l    #$40,d0
  3318.     beq.b    L512
  3319. L511
  3320. ;Light, &src->Ligh
  3321.     move.l    #$8E40,-(a7)
  3322.     pea    $2318(a3)
  3323.     pea    $2318(a2)
  3324.     jsr    _q_memcpy
  3325.     add.w    #$C,a7
  3326. L512
  3327. ;   if (mask & GL_LINE_BIT) 
  3328.     move.l    d2,d0
  3329.     and.l    #4,d0
  3330.     beq.b    L514
  3331. L513
  3332. ;t->Line, &src->Li
  3333.     pea    $C.w
  3334.     move.l    a3,a0
  3335.     add.l    #$B158,a0
  3336.     pea    (a0)
  3337.     move.l    a2,a0
  3338.     add.l    #$B158,a0
  3339.     pea    (a0)
  3340.     jsr    _q_memcpy
  3341.     add.w    #$C,a7
  3342. L514
  3343. ;   if (mask & GL_LIST_BIT) 
  3344.     move.l    d2,d0
  3345.     and.l    #$20000,d0
  3346.     beq.b    L516
  3347. L515
  3348. ;t->List, &src->Li
  3349.     pea    4.w
  3350.     move.l    a3,a0
  3351.     add.l    #$B164,a0
  3352.     pea    (a0)
  3353.     move.l    a2,a0
  3354.     add.l    #$B164,a0
  3355.     pea    (a0)
  3356.     jsr    _q_memcpy
  3357.     add.w    #$C,a7
  3358. L516
  3359. ;   if (mask & GL_PIXEL_MODE_BIT) 
  3360.     move.l    d2,d0
  3361.     and.l    #$20,d0
  3362.     beq.b    L518
  3363. L517
  3364. ;Pixel, &src->Pixe
  3365.     pea    $2C68.w
  3366.     move.l    a3,a0
  3367.     add.l    #$B168,a0
  3368.     pea    (a0)
  3369.     move.l    a2,a0
  3370.     add.l    #$B168,a0
  3371.     pea    (a0)
  3372.     jsr    _q_memcpy
  3373.     add.w    #$C,a7
  3374. L518
  3375. ;   if (mask & GL_POINT_BIT) 
  3376.     move.l    d2,d0
  3377.     and.l    #2,d0
  3378.     beq.b    L520
  3379. L519
  3380. ;Point, &src->Poin
  3381.     pea    $1E.w
  3382.     move.l    a3,a0
  3383.     add.l    #$DDD0,a0
  3384.     pea    (a0)
  3385.     move.l    a2,a0
  3386.     add.l    #$DDD0,a0
  3387.     pea    (a0)
  3388.     jsr    _q_memcpy
  3389.     add.w    #$C,a7
  3390. L520
  3391. ;   if (mask & GL_POLYGON_BIT) 
  3392.     move.l    d2,d0
  3393.     and.l    #$8,d0
  3394.     beq.b    L522
  3395. L521
  3396. ;n, &src->Polygon,
  3397.     pea    $24.w
  3398.     move.l    a3,a0
  3399.     add.l    #$DDEE,a0
  3400.     pea    (a0)
  3401.     move.l    a2,a0
  3402.     add.l    #$DDEE,a0
  3403.     pea    (a0)
  3404.     jsr    _q_memcpy
  3405.     add.w    #$C,a7
  3406. L522
  3407. ;   if (mask & GL_POLYGON_STIPPLE_BIT) 
  3408.     move.l    d2,d0
  3409.     and.l    #$10,d0
  3410.     beq.b    L526
  3411. L523
  3412. ;      for (i=0;
  3413.     moveq    #0,d0
  3414.     bra.b    L525
  3415. L524
  3416. ;         dst->PolygonStipple[i] = src->PolygonStipple[i];
  3417.     move.l    a3,a0
  3418.     add.l    #$DE12,a0
  3419.     move.l    0(a0,d0.l*4),d1
  3420.     move.l    a2,a0
  3421.     add.l    #$DE12,a0
  3422.     move.l    d1,0(a0,d0.l*4)
  3423.     addq.l    #1,d0
  3424. L525
  3425.     cmp.l    #$20,d0
  3426.     blt.b    L524
  3427. L526
  3428. ;   if (mask & GL_SCISSOR_BIT) 
  3429.     move.l    d2,d0
  3430.     and.l    #$80000,d0
  3431.     beq.b    L528
  3432. L527
  3433. ;r, &src->Scissor,
  3434.     pea    $12.w
  3435.     move.l    a3,a0
  3436.     add.l    #$DE92,a0
  3437.     pea    (a0)
  3438.     move.l    a2,a0
  3439.     add.l    #$DE92,a0
  3440.     pea    (a0)
  3441.     jsr    _q_memcpy
  3442.     add.w    #$C,a7
  3443. L528
  3444. ;   if (mask & GL_STENCIL_BUFFER_BIT) 
  3445.     move.l    d2,d0
  3446.     and.l    #$400,d0
  3447.     beq.b    L530
  3448. L529
  3449. ;l, &src->Stencil,
  3450.     pea    $16.w
  3451.     move.l    a3,a0
  3452.     add.l    #$DEA4,a0
  3453.     pea    (a0)
  3454.     move.l    a2,a0
  3455.     add.l    #$DEA4,a0
  3456.     pea    (a0)
  3457.     jsr    _q_memcpy
  3458.     add.w    #$C,a7
  3459. L530
  3460. ;   if (mask & GL_TEXTURE_BIT) 
  3461.     move.l    d2,d0
  3462.     and.l    #$40000,d0
  3463.     beq.b    L532
  3464. L531
  3465. ;e, &src->Texture,
  3466.     pea    $618.w
  3467.     move.l    a3,a0
  3468.     add.l    #$DEBA,a0
  3469.     pea    (a0)
  3470.     move.l    a2,a0
  3471.     add.l    #$DEBA,a0
  3472.     pea    (a0)
  3473.     jsr    _q_memcpy
  3474.     add.w    #$C,a7
  3475. L532
  3476. ;   if (mask & GL_TRANSFORM_BIT) 
  3477.     move.l    d2,d0
  3478.     and.l    #$1000,d0
  3479.     beq.b    L534
  3480. L533
  3481. ;src->Transform, s
  3482.     pea    $6E.w
  3483.     move.l    a3,a0
  3484.     add.l    #$E4D2,a0
  3485.     pea    (a0)
  3486.     move.l    a2,a0
  3487.     add.l    #$E4D2,a0
  3488.     pea    (a0)
  3489.     jsr    _q_memcpy
  3490.     add.w    #$C,a7
  3491. L534
  3492. ;   if (mask & GL_VIEWPORT_BIT) 
  3493.     and.l    #$800,d2
  3494.     beq.b    L536
  3495. L535
  3496. ; &src->Viewport, 
  3497.     pea    $30.w
  3498.     move.l    a3,a0
  3499.     add.l    #$E540,a0
  3500.     pea    (a0)
  3501.     move.l    a2,a0
  3502.     add.l    #$E540,a0
  3503.     pea    (a0)
  3504.     jsr    _q_memcpy
  3505.     add.w    #$C,a7
  3506. L536
  3507.     movem.l    (a7)+,d2/d3/a2/a3
  3508.     rts
  3509.  
  3510.     SECTION "_gl_set_api_table:0",CODE
  3511.  
  3512.  
  3513. ;void gl_set_api_table( GLcontext *ctx, const struct gl_api_table *ap
  3514.     XDEF    _gl_set_api_table
  3515. _gl_set_api_table
  3516.     movem.l    4(a7),a0/a1
  3517. L537
  3518. ;   if (api) 
  3519.     cmp.w    #0,a1
  3520.     beq.b    L539
  3521. L538
  3522. ;EMCPY( &ctx->API,
  3523.     pea    $2FC.w
  3524.     move.l    a1,-(a7)
  3525.     pea    4(a0)
  3526.     jsr    _q_memcpy
  3527.     add.w    #$C,a7
  3528.     bra.b    L540
  3529. L539
  3530. ;&ctx->API, &ctx->
  3531.     pea    $2FC.w
  3532.     pea    $5FC(a0)
  3533.     pea    4(a0)
  3534.     jsr    _q_memcpy
  3535.     add.w    #$C,a7
  3536. L540
  3537.     rts
  3538.  
  3539.     SECTION "_gl_problem:0",CODE
  3540.  
  3541.  
  3542. ;void gl_problem( const GLcontext *ctx, const char *s )
  3543.     XDEF    _gl_problem
  3544. _gl_problem
  3545.     move.l    $8(a7),a0
  3546. L543
  3547. ;   fprintf( stderr, "Mesa implementation error: %s\n", s );
  3548.     move.l    a0,-(a7)
  3549.     move.l    #L541,-(a7)
  3550.     pea    _std__err(a6)
  3551.     jsr    _fprintf
  3552.     add.w    #$C,a7
  3553. ;   fprintf( stderr, "Report to Mesa author.\n" );
  3554.     move.l    #L542,-(a7)
  3555.     pea    _std__err(a6)
  3556.     jsr    _fprintf
  3557.     addq.w    #$8,a7
  3558. ;   (void) ctx;
  3559.     rts
  3560.  
  3561. L541
  3562.     dc.b    'Mesa implementation error: %s',$A,0
  3563. L542
  3564.     dc.b    'Report to Mesa author.',$A,0
  3565.  
  3566.     SECTION "_gl_warning:0",CODE
  3567.  
  3568.  
  3569. ;void gl_warning( const GLcontext *ctx, const char *s )
  3570.     XDEF    _gl_warning
  3571. _gl_warning
  3572.     move.l    a2,-(a7)
  3573.     move.l    $C(a7),a2
  3574. L546
  3575. ;   if (getenv("MESA_DEBUG")) 
  3576.     move.l    #L544,-(a7)
  3577.     jsr    _getenv
  3578.     addq.w    #4,a7
  3579.     tst.l    d0
  3580.     beq.b    L548
  3581. L547
  3582. ;      debug = GL_TRUE;
  3583.     moveq    #1,d0
  3584.     bra.b    L549
  3585. L548
  3586. ;      debug = GL_FALSE;
  3587.     moveq    #0,d0
  3588. L549
  3589. ;   if (debug) 
  3590.     tst.b    d0
  3591.     beq.b    L551
  3592. L550
  3593. ;      fprintf( stderr, "Mesa warning: %s\n", s );
  3594.     move.l    a2,-(a7)
  3595.     move.l    #L545,-(a7)
  3596.     pea    _std__err(a6)
  3597.     jsr    _fprintf
  3598.     add.w    #$C,a7
  3599. L551
  3600. ;   (void) ctx;
  3601.     move.l    (a7)+,a2
  3602.     rts
  3603.  
  3604. L544
  3605.     dc.b    'MESA_DEBUG',0
  3606. L545
  3607.     dc.b    'Mesa warning: %s',$A,0
  3608.  
  3609.     SECTION "_gl_error:0",CODE
  3610.  
  3611.  
  3612. ;void gl_error( GLcontext *ctx, GLenum error, const char *s )
  3613.     XDEF    _gl_error
  3614. _gl_error
  3615. L581    EQU    -$3EA
  3616.     link    a5,#L581
  3617.     movem.l    d2/a2/a3,-(a7)
  3618.     movem.l    $C(a5),d2/a3
  3619.     move.l    $8(a5),a2
  3620. L562
  3621. ;   if (getenv("MESA_DEBUG")) 
  3622.     move.l    #L552,-(a7)
  3623.     jsr    _getenv
  3624.     addq.w    #4,a7
  3625.     tst.l    d0
  3626.     beq.b    L564
  3627. L563
  3628. ;      debug = GL_TRUE;
  3629.     moveq    #1,d0
  3630.     bra.b    L565
  3631. L564
  3632. ;      debug = GL_FALSE;
  3633.     moveq    #0,d0
  3634. L565
  3635. ;   if (debug) 
  3636.     tst.b    d0
  3637.     beq    L576
  3638. L566
  3639. ;      switch (error)
  3640.     move.l    d2,d0
  3641.     cmp.l    #$502,d0
  3642.     beq.b    L570
  3643.     bgt.b    L582
  3644.     cmp.l    #$500,d0
  3645.     beq.b    L569
  3646.     bgt.b    L583
  3647.     cmp.l    #0,d0
  3648.     beq.b    L567
  3649.     bra    L574
  3650. L583
  3651.     bgt.b    L568
  3652. L582
  3653.     cmp.l    #$504,d0
  3654.     beq    L572
  3655.     bgt.b    L584
  3656.     blt.b    L571
  3657. L584
  3658.     cmp.l    #$505,d0
  3659.     beq    L573
  3660.     bra    L574
  3661. ;     
  3662. L567
  3663. ;        strcpy( errstr, "GL_NO_ERROR" );
  3664.     move.l    #L553,-(a7)
  3665.     pea    -$3EA(a5)
  3666.     jsr    _strcpy
  3667.     addq.w    #$8,a7
  3668. ;        
  3669.     bra    L575
  3670. L568
  3671. ;        strcpy( errstr, "GL_INVALID_VALUE" );
  3672.     move.l    #L554,-(a7)
  3673.     pea    -$3EA(a5)
  3674.     jsr    _strcpy
  3675.     addq.w    #$8,a7
  3676. ;        
  3677.     bra    L575
  3678. L569
  3679. ;        strcpy( errstr, "GL_INVALID_ENUM" );
  3680.     move.l    #L555,-(a7)
  3681.     pea    -$3EA(a5)
  3682.     jsr    _strcpy
  3683.     addq.w    #$8,a7
  3684. ;        
  3685.     bra.b    L575
  3686. L570
  3687. ;        strcpy( errstr, "GL_INVALID_OPERATION" );
  3688.     move.l    #L556,-(a7)
  3689.     pea    -$3EA(a5)
  3690.     jsr    _strcpy
  3691.     addq.w    #$8,a7
  3692. ;        
  3693.     bra.b    L575
  3694. L571
  3695. ;        strcpy( errstr, "GL_STACK_OVERFLOW" );
  3696.     move.l    #L557,-(a7)
  3697.     pea    -$3EA(a5)
  3698.     jsr    _strcpy
  3699.     addq.w    #$8,a7
  3700. ;        
  3701.     bra.b    L575
  3702. L572
  3703. ;        strcpy( errstr, "GL_STACK_UNDERFLOW" );
  3704.     move.l    #L558,-(a7)
  3705.     pea    -$3EA(a5)
  3706.     jsr    _strcpy
  3707.     addq.w    #$8,a7
  3708. ;        
  3709.     bra.b    L575
  3710. L573
  3711. ;        strcpy( errstr, "GL_OUT_OF_MEMORY" );
  3712.     move.l    #L559,-(a7)
  3713.     pea    -$3EA(a5)
  3714.     jsr    _strcpy
  3715.     addq.w    #$8,a7
  3716. ;        
  3717.     bra.b    L575
  3718. L574
  3719. ;        strcpy( errstr, "unknown" );
  3720.     move.l    #L560,-(a7)
  3721.     pea    -$3EA(a5)
  3722.     jsr    _strcpy
  3723.     addq.w    #$8,a7
  3724. ;        
  3725. L575
  3726. ;      fprintf( stderr, "Mesa user error: %s in %s\n", errstr, 
  3727.     move.l    a3,-(a7)
  3728.     pea    -$3EA(a5)
  3729.     move.l    #L561,-(a7)
  3730.     pea    _std__err(a6)
  3731.     jsr    _fprintf
  3732.     add.w    #$10,a7
  3733. L576
  3734. ;   if (ctx->ErrorValue==GL_NO_ERROR) 
  3735.     move.l    a2,a0
  3736.     add.l    #$E95A,a0
  3737.     tst.l    (a0)
  3738.     bne.b    L578
  3739. L577
  3740. ;      ctx->ErrorValue = error;
  3741.     move.l    a2,a0
  3742.     add.l    #$E95A,a0
  3743.     move.l    d2,(a0)
  3744. L578
  3745. ;   if (ctx->Driver.Error) 
  3746.     tst.l    $978(a2)
  3747.     beq.b    L580
  3748. L579
  3749. ;      (*ctx->Driver.Error)( ctx );
  3750.     move.l    a2,-(a7)
  3751.     move.l    $978(a2),a0
  3752.     jsr    (a0)
  3753.     addq.w    #4,a7
  3754. L580
  3755.     movem.l    (a7)+,d2/a2/a3
  3756.     unlk    a5
  3757.     rts
  3758.  
  3759. L555
  3760.     dc.b    'GL_INVALID_ENUM',0
  3761. L556
  3762.     dc.b    'GL_INVALID_OPERATION',0
  3763. L554
  3764.     dc.b    'GL_INVALID_VALUE',0
  3765. L553
  3766.     dc.b    'GL_NO_ERROR',0
  3767. L559
  3768.     dc.b    'GL_OUT_OF_MEMORY',0
  3769. L557
  3770.     dc.b    'GL_STACK_OVERFLOW',0
  3771. L558
  3772.     dc.b    'GL_STACK_UNDERFLOW',0
  3773. L552
  3774.     dc.b    'MESA_DEBUG',0
  3775. L561
  3776.     dc.b    'Mesa user error: %s in %s',$A,0
  3777. L560
  3778.     dc.b    'unknown',0
  3779.  
  3780.     SECTION "_gl_GetError:0",CODE
  3781.  
  3782.  
  3783. ;GLenum gl_GetError( GLcontext *ctx )
  3784.     XDEF    _gl_GetError
  3785. _gl_GetError
  3786.     move.l    4(a7),a0
  3787. L586
  3788. ;   if (INSIDE_BEGIN_END(ctx)) 
  3789.     move.l    a0,a1
  3790.     add.l    #$E968,a1
  3791.     move.l    (a1),d0
  3792.     cmp.l    #$1A00,d0
  3793.     beq.b    L588
  3794. L587
  3795. ;      gl_error( ctx, GL_INVALID_OPERATION, "glGetError" );
  3796.     move.l    #L585,-(a7)
  3797.     pea    $502.w
  3798.     move.l    a0,-(a7)
  3799.     jsr    _gl_error
  3800.     add.w    #$C,a7
  3801.     move.l    #$502,d0
  3802.     rts
  3803. L588
  3804. ;   e = ctx->ErrorValue;
  3805.     move.l    a0,a1
  3806.     add.l    #$E95A,a1
  3807.     move.l    (a1),d0
  3808. ;   ctx->ErrorValue = (GLenum) GL_NO_ERROR;
  3809.     add.l    #$E95A,a0
  3810.     clr.l    (a0)
  3811.     rts
  3812.  
  3813. L585
  3814.     dc.b    'glGetError',0
  3815.  
  3816.     SECTION "_gl_ResizeBuffersMESA:0",CODE
  3817.  
  3818.  
  3819. ;void gl_ResizeBuffersMESA( GLcontext *ctx )
  3820.     XDEF    _gl_ResizeBuffersMESA
  3821. _gl_ResizeBuffersMESA
  3822. L606    EQU    -$C
  3823.     link    a5,#L606
  3824.     movem.l    d2/a2,-(a7)
  3825.     move.l    $8(a5),a2
  3826. L589
  3827. ;   ctx->NewState |= NEW_ALL;
  3828.     move.l    a2,a0
  3829.     add.l    #$E960,a0
  3830.     move.l    (a0),d0
  3831.     or.l    #$FF,d0
  3832.     move.l    a2,a0
  3833.     add.l    #$E960,a0
  3834.     move.l    d0,(a0)
  3835. ;   (*ctx->Driver.GetBufferSize)( ctx, &buf_width, &buf_height );
  3836.     pea    -$C(a5)
  3837.     pea    -$8(a5)
  3838.     move.l    a2,-(a7)
  3839.     move.l    $920(a2),a0
  3840.     jsr    (a0)
  3841.     add.w    #$C,a7
  3842. ;   newsize = ctx->Buffer->Width != (GLint) buf_width
  3843.     moveq    #1,d2
  3844.     move.l    $8FC(a2),a0
  3845.     move.l    4(a0),d0
  3846.     cmp.l    -$8(a5),d0
  3847.     bne.b    L592
  3848. L590
  3849.     move.l    $8FC(a2),a0
  3850.     move.l    $8(a0),d0
  3851.     cmp.l    -$C(a5),d0
  3852.     bne.b    L592
  3853. L591
  3854.     moveq    #0,d2
  3855. L592
  3856. ;   ctx->Buffer->Width = buf_width;
  3857.     move.l    $8FC(a2),a0
  3858.     move.l    -$8(a5),4(a0)
  3859. ;   ctx->Buffer->Height = buf_height;
  3860.     move.l    $8FC(a2),a0
  3861.     move.l    -$C(a5),$8(a0)
  3862. ;   if (newsize && ctx->Visual->DepthBits>0) 
  3863.     tst.l    d2
  3864.     beq.b    L595
  3865. L593
  3866.     move.l    $8F8(a2),a0
  3867.     move.l    $1C(a0),d0
  3868.     cmp.l    #0,d0
  3869.     ble.b    L595
  3870. L594
  3871. ;      (*ctx->Driver.AllocDepthBuffer)( ctx );
  3872.     move.l    a2,-(a7)
  3873.     move.l    $984(a2),a0
  3874.     jsr    (a0)
  3875.     addq.w    #4,a7
  3876. L595
  3877. ;   if (newsize && ctx->Visual->StencilBits>0) 
  3878.     tst.l    d2
  3879.     beq.b    L598
  3880. L596
  3881.     move.l    $8F8(a2),a0
  3882.     move.l    $20(a0),d0
  3883.     cmp.l    #0,d0
  3884.     ble.b    L598
  3885. L597
  3886. ;      gl_alloc_stencil_buffer( ctx );
  3887.     move.l    a2,-(a7)
  3888.     jsr    _gl_alloc_stencil_buffer
  3889.     addq.w    #4,a7
  3890. L598
  3891. ;   if (newsize && ctx->Visual->AccumBits>0) 
  3892.     tst.l    d2
  3893.     beq.b    L601
  3894. L599
  3895.     move.l    $8F8(a2),a0
  3896.     move.l    $18(a0),d0
  3897.     cmp.l    #0,d0
  3898.     ble.b    L601
  3899. L600
  3900. ;      gl_alloc_accum_buffer( ctx );
  3901.     move.l    a2,-(a7)
  3902.     jsr    _gl_alloc_accum_buffer
  3903.     addq.w    #4,a7
  3904. L601
  3905. ;         GLboolean red   = ctx-
  3906.     tst.l    d2
  3907.     beq.b    L605
  3908. L602
  3909.     move.l    $8F8(a2),a0
  3910.     tst.b    $24(a0)
  3911.     bne.b    L604
  3912. L603
  3913.     move.l    $8F8(a2),a0
  3914.     tst.b    $25(a0)
  3915.     beq.b    L605
  3916. L604
  3917. ;      gl_alloc_alpha_buffers( ctx );
  3918.     move.l    a2,-(a7)
  3919.     jsr    _gl_alloc_alpha_buffers
  3920.     addq.w    #4,a7
  3921. L605
  3922.     movem.l    (a7)+,d2/a2
  3923.     unlk    a5
  3924.     rts
  3925.  
  3926.     SECTION "_update_pixel_logic:0",CODE
  3927.  
  3928.  
  3929. ;static void update_pixel_logic( GLcontext *ctx )
  3930. _update_pixel_logic
  3931.     move.l    a2,-(a7)
  3932.     move.l    $8(a7),a2
  3933. L607
  3934. ;   if (ctx->Visual->RGBAflag) 
  3935.     move.l    $8F8(a2),a0
  3936.     tst.b    (a0)
  3937.     beq.b    L618
  3938. L608
  3939. ;      if (ctx->Color.ColorLogicOpEnabled) 
  3940.     tst.b    $2213(a2)
  3941.     beq.b    L614
  3942. L609
  3943. ;     if (ctx->Driver.LogicOp
  3944.     tst.l    $970(a2)
  3945.     beq.b    L612
  3946. L610
  3947.     move.l    $220E(a2),-(a7)
  3948.     move.l    a2,-(a7)
  3949.     move.l    $970(a2),a0
  3950.     jsr    (a0)
  3951.     addq.w    #$8,a7
  3952.     tst.b    d0
  3953.     beq.b    L612
  3954. L611
  3955. ;        ctx->Color.SWLogicOpEnabled = GL_FALSE;
  3956.     clr.b    $2214(a2)
  3957.     bra.b    L613
  3958. L612
  3959. ;        ctx->Color.SWLogicOpEnabled = GL_TRUE;
  3960.     move.b    #1,$2214(a2)
  3961. L613
  3962.     bra.b    L617
  3963. L614
  3964. ;     if (ctx->Driver.LogicOp) 
  3965.     tst.l    $970(a2)
  3966.     beq.b    L616
  3967. L615
  3968. ;            (void) (*ctx->Driver.LogicOp)( ctx, GL_COPY )
  3969.     pea    $1503.w
  3970.     move.l    a2,-(a7)
  3971.     move.l    $970(a2),a0
  3972.     jsr    (a0)
  3973.     addq.w    #$8,a7
  3974. L616
  3975. ;     ctx->Color.SWLogicOpEnabled = GL_FALSE;
  3976.     clr.b    $2214(a2)
  3977. L617
  3978.     bra.b    L627
  3979. L618
  3980. ;      if (ctx->Color.IndexLogicOpEnabled) 
  3981.     tst.b    $2212(a2)
  3982.     beq.b    L624
  3983. L619
  3984. ;     if (ctx->Driver.LogicOp
  3985.     tst.l    $970(a2)
  3986.     beq.b    L622
  3987. L620
  3988.     move.l    $220E(a2),-(a7)
  3989.     move.l    a2,-(a7)
  3990.     move.l    $970(a2),a0
  3991.     jsr    (a0)
  3992.     addq.w    #$8,a7
  3993.     tst.b    d0
  3994.     beq.b    L622
  3995. L621
  3996. ;        ctx->Color.SWLogicOpEnabled = GL_FALSE;
  3997.     clr.b    $2214(a2)
  3998.     bra.b    L623
  3999. L622
  4000. ;        ctx->Color.SWLogicOpEnabled = GL_TRUE;
  4001.     move.b    #1,$2214(a2)
  4002. L623
  4003.     bra.b    L627
  4004. L624
  4005. ;     if (ctx->Driver.LogicOp) 
  4006.     tst.l    $970(a2)
  4007.     beq.b    L626
  4008. L625
  4009. ;            (void) (*ctx->Driver.LogicOp)( ctx, GL_COPY )
  4010.     pea    $1503.w
  4011.     move.l    a2,-(a7)
  4012.     move.l    $970(a2),a0
  4013.     jsr    (a0)
  4014.     addq.w    #$8,a7
  4015. L626
  4016. ;     ctx->Color.SWLogicOpEnabled = GL_FALSE;
  4017.     clr.b    $2214(a2)
  4018. L627
  4019.     move.l    (a7)+,a2
  4020.     rts
  4021.  
  4022.     SECTION "_update_pixel_masking:0",CODE
  4023.  
  4024.  
  4025. ;static void update_pixel_masking( GLcontext *ctx )
  4026. _update_pixel_masking
  4027.     movem.l    d2-d4/a2,-(a7)
  4028.     move.l    $14(a7),a2
  4029. L628
  4030. ;   if (ctx->Visual->RGBAflag) 
  4031.     move.l    $8F8(a2),a0
  4032.     tst.b    (a0)
  4033.     beq    L650
  4034. L629
  4035. ;      GLuint *colorMask = (GLuint *) ctx->Color.ColorMask;
  4036. ;      if (*colorMask == 0xffffffff) 
  4037.     move.l    $21DC(a2),d0
  4038.     cmp.l    #-1,d0
  4039.     bne.b    L633
  4040. L630
  4041. ;         if (ctx->Driver.ColorMask) 
  4042.     tst.l    $96C(a2)
  4043.     beq.b    L632
  4044. L631
  4045. ;            (void) (*ctx->Driver.ColorMask)( ctx, GL_TRU
  4046.     move.b    #1,-(a7)
  4047.     move.b    #1,-(a7)
  4048.     move.b    #1,-(a7)
  4049.     move.b    #1,-(a7)
  4050.     move.l    a2,-(a7)
  4051.     move.l    $96C(a2),a0
  4052.     jsr    (a0)
  4053.     add.w    #$C,a7
  4054. L632
  4055. ;         ctx->Color.SWmasking = GL_FALSE;
  4056.     clr.b    $21E0(a2)
  4057.     bra.b    L649
  4058. L633
  4059. ;         GLboolean red   = ctx->Color.ColorMask[RCOMP] ? GL
  4060.     tst.b    $21DC(a2)
  4061.     beq.b    L635
  4062. L634
  4063.     moveq    #1,d0
  4064.     bra.b    L636
  4065. L635
  4066.     moveq    #0,d0
  4067. L636
  4068.     move.b    d0,d3
  4069. ;         GLboolean green = ctx->Color.ColorMask[GCOMP] ? GL
  4070.     lea    $21DC(a2),a0
  4071.     tst.b    1(a0)
  4072.     beq.b    L638
  4073. L637
  4074.     moveq    #1,d0
  4075.     bra.b    L639
  4076. L638
  4077.     moveq    #0,d0
  4078. L639
  4079.     move.b    d0,d2
  4080. ;         GLboolean blue  = ctx->Color.ColorMask[BCOMP] ? GL
  4081.     lea    $21DC(a2),a0
  4082.     tst.b    2(a0)
  4083.     beq.b    L641
  4084. L640
  4085.     moveq    #1,d0
  4086.     bra.b    L642
  4087. L641
  4088.     moveq    #0,d0
  4089. L642
  4090.     move.b    d0,d1
  4091. ;         GLboolean alpha = ctx->Color.ColorMask[ACOMP] ? GL
  4092.     lea    $21DC(a2),a0
  4093.     tst.b    3(a0)
  4094.     beq.b    L644
  4095. L643
  4096.     moveq    #1,d0
  4097.     bra.b    L645
  4098. L644
  4099.     moveq    #0,d0
  4100. L645
  4101. ;         if (ctx->Driver.ColorMask
  4102.     tst.l    $96C(a2)
  4103.     beq.b    L648
  4104. L646
  4105.     move.b    d0,-(a7)
  4106.     move.b    d1,-(a7)
  4107.     move.b    d2,-(a7)
  4108.     move.b    d3,-(a7)
  4109.     move.l    a2,-(a7)
  4110.     move.l    $96C(a2),a0
  4111.     jsr    (a0)
  4112.     add.w    #$C,a7
  4113.     tst.b    d0
  4114.     beq.b    L648
  4115. L647
  4116. ;            ctx->Color.SWmasking = GL_FALSE;
  4117.     clr.b    $21E0(a2)
  4118.     bra.b    L649
  4119. L648
  4120. ;            ctx->Color.SWmasking = GL_TRUE;
  4121.     move.b    #1,$21E0(a2)
  4122. L649
  4123.     bra.b    L658
  4124. L650
  4125. ;      if (ctx->Color.IndexMask==0xffffffff) 
  4126.     move.l    $21D8(a2),d0
  4127.     cmp.l    #-1,d0
  4128.     bne.b    L654
  4129. L651
  4130. ;         if (ctx->Driver.IndexMask) 
  4131.     tst.l    $968(a2)
  4132.     beq.b    L653
  4133. L652
  4134. ;            (void) (*ctx->Driver.IndexMask)( ctx, 0xffff
  4135.     move.l    #-1,-(a7)
  4136.     move.l    a2,-(a7)
  4137.     move.l    $968(a2),a0
  4138.     jsr    (a0)
  4139.     addq.w    #$8,a7
  4140. L653
  4141. ;         ctx->Color.SWmasking = GL_FALSE;
  4142.     clr.b    $21E0(a2)
  4143.     bra.b    L658
  4144. L654
  4145. ;         if (ctx->Driver.IndexMask
  4146.     tst.l    $968(a2)
  4147.     beq.b    L657
  4148. L655
  4149.     move.l    $21D8(a2),-(a7)
  4150.     move.l    a2,-(a7)
  4151.     move.l    $968(a2),a0
  4152.     jsr    (a0)
  4153.     addq.w    #$8,a7
  4154.     tst.b    d0
  4155.     beq.b    L657
  4156. L656
  4157. ;            ctx->Color.SWmasking = GL_FALSE;
  4158.     clr.b    $21E0(a2)
  4159.     bra.b    L658
  4160. L657
  4161. ;            ctx->Color.SWmasking = GL_TRUE;
  4162.     move.b    #1,$21E0(a2)
  4163. L658
  4164.     movem.l    (a7)+,d2-d4/a2
  4165.     rts
  4166.  
  4167.     SECTION "_update_fog_mode:0",CODE
  4168.  
  4169.  
  4170. ;static void update_fog_mode( GLcontext *ctx )
  4171. _update_fog_mode
  4172.     move.l    a2,-(a7)
  4173.     move.l    $8(a7),a2
  4174. L659
  4175. ;   if (ctx->Fog.Enabled) 
  4176.     tst.b    $22DE(a2)
  4177.     beq.b    L669
  4178. L660
  4179. ;      if (ctx->Texture.Enabled)
  4180.     move.l    a2,a0
  4181.     add.l    #$DEBA,a0
  4182.     tst.l    $8(a0)
  4183.     beq.b    L662
  4184. L661
  4185. ;         ctx->FogMode = FOG_FRAGMENT;
  4186.     move.l    a2,a0
  4187.     add.l    #$E98A,a0
  4188.     move.l    #2,(a0)
  4189.     bra.b    L665
  4190. L662
  4191. ;      else if (ctx->Hint.Fog == GL_NICEST)
  4192.     move.l    $2314(a2),d0
  4193.     cmp.l    #$1102,d0
  4194.     bne.b    L664
  4195. L663
  4196. ;         ctx->FogMode = FOG_FRAGMENT;
  4197.     move.l    a2,a0
  4198.     add.l    #$E98A,a0
  4199.     move.l    #2,(a0)
  4200.     bra.b    L665
  4201. L664
  4202. ;         ctx->FogMode = FOG_VERTEX;
  4203.     move.l    a2,a0
  4204.     add.l    #$E98A,a0
  4205.     move.l    #1,(a0)
  4206. L665
  4207. ;      if (ctx->Driver.GetParameteri)
  4208.     tst.l    $980(a2)
  4209.     beq.b    L668
  4210. L666
  4211. ;         if ((ctx->Driver.GetParameteri)( ctx, DD_HAVE_HARD
  4212.     pea    3.w
  4213.     move.l    a2,-(a7)
  4214.     move.l    $980(a2),a0
  4215.     jsr    (a0)
  4216.     addq.w    #$8,a7
  4217.     tst.l    d0
  4218.     beq.b    L668
  4219. L667
  4220. ;            ctx->FogMode = FOG_FRAGMENT;
  4221.     move.l    a2,a0
  4222.     add.l    #$E98A,a0
  4223.     move.l    #2,(a0)
  4224. L668
  4225.     bra.b    L670
  4226. L669
  4227. ;      ctx->FogMode = FOG_NONE;
  4228.     move.l    a2,a0
  4229.     add.l    #$E98A,a0
  4230.     clr.l    (a0)
  4231. L670
  4232.     move.l    (a7)+,a2
  4233.     rts
  4234.  
  4235.     SECTION "_update_rasterflags:0",CODE
  4236.  
  4237.  
  4238. ;static void update_rasterflags( GLcontext *ctx )
  4239. _update_rasterflags
  4240.     move.l    4(a7),a0
  4241. L671
  4242. ;   ctx->RasterMask = 0;
  4243.     move.l    a0,a1
  4244.     add.l    #$E974,a1
  4245.     clr.l    (a1)
  4246. ;   if (ctx->Color.AlphaEnabled)        
  4247.     tst.b    $21E6(a0)
  4248.     beq.b    L673
  4249. L672
  4250. ;   if (ctx->Color.AlphaEnabled)        ct
  4251.     move.l    a0,a1
  4252.     add.l    #$E974,a1
  4253.     move.l    (a1),d0
  4254.     or.l    #1,d0
  4255.     move.l    a0,a1
  4256.     add.l    #$E974,a1
  4257.     move.l    d0,(a1)
  4258. L673
  4259. ;   if (ctx->Color.BlendEnabled)        
  4260.     tst.b    $21ED(a0)
  4261.     beq.b    L675
  4262. L674
  4263. ;   if (ctx->Color.BlendEnabled)        ct
  4264.     move.l    a0,a1
  4265.     add.l    #$E974,a1
  4266.     move.l    (a1),d0
  4267.     or.l    #2,d0
  4268.     move.l    a0,a1
  4269.     add.l    #$E974,a1
  4270.     move.l    d0,(a1)
  4271. L675
  4272. ;   if (ctx->Depth.Test)            
  4273.     tst.b    $22A4(a0)
  4274.     beq.b    L677
  4275. L676
  4276. ;   if (ctx->Depth.Test)            ctx->RasterMask 
  4277.     move.l    a0,a1
  4278.     add.l    #$E974,a1
  4279.     move.l    (a1),d0
  4280.     or.l    #4,d0
  4281.     move.l    a0,a1
  4282.     add.l    #$E974,a1
  4283.     move.l    d0,(a1)
  4284. L677
  4285. ;   if (ctx->FogMode==FOG_FRAGMENT)    
  4286.     move.l    a0,a1
  4287.     add.l    #$E98A,a1
  4288.     move.l    (a1),d0
  4289.     cmp.l    #2,d0
  4290.     bne.b    L679
  4291. L678
  4292. ;   if (ctx->FogMode==FOG_FRAGMENT)
  4293.     move.l    a0,a1
  4294.     add.l    #$E974,a1
  4295.     move.l    (a1),d0
  4296.     or.l    #$8,d0
  4297.     move.l    a0,a1
  4298.     add.l    #$E974,a1
  4299.     move.l    d0,(a1)
  4300. L679
  4301. ;   if (ctx->Color.SWLogicOpEnabled)    
  4302.     tst.b    $2214(a0)
  4303.     beq.b    L681
  4304. L680
  4305. ;   if (ctx->Color.SWLogicOpEnabl
  4306.     move.l    a0,a1
  4307.     add.l    #$E974,a1
  4308.     move.l    (a1),d0
  4309.     or.l    #$10,d0
  4310.     move.l    a0,a1
  4311.     add.l    #$E974,a1
  4312.     move.l    d0,(a1)
  4313. L681
  4314. ;   if (ctx->Scissor.Enabled)        
  4315.     move.l    a0,a1
  4316.     add.l    #$DE92,a1
  4317.     tst.b    (a1)
  4318.     beq.b    L683
  4319. L682
  4320. ;   if (ctx->Scissor.Enabled)        ctx->Ras
  4321.     move.l    a0,a1
  4322.     add.l    #$E974,a1
  4323.     move.l    (a1),d0
  4324.     or.l    #$20,d0
  4325.     move.l    a0,a1
  4326.     add.l    #$E974,a1
  4327.     move.l    d0,(a1)
  4328. L683
  4329. ;   if (ctx->Stencil.Enabled)        
  4330.     move.l    a0,a1
  4331.     add.l    #$DEA4,a1
  4332.     tst.b    (a1)
  4333.     beq.b    L685
  4334. L684
  4335. ;   if (ctx->Stencil.Enabled)        ctx->Ras
  4336.     move.l    a0,a1
  4337.     add.l    #$E974,a1
  4338.     move.l    (a1),d0
  4339.     or.l    #$40,d0
  4340.     move.l    a0,a1
  4341.     add.l    #$E974,a1
  4342.     move.l    d0,(a1)
  4343. L685
  4344. ;   if (ctx->Color.SWmasking)        
  4345.     tst.b    $21E0(a0)
  4346.     beq.b    L687
  4347. L686
  4348. ;   if (ctx->Color.SWmasking)        ctx->Ras
  4349.     move.l    a0,a1
  4350.     add.l    #$E974,a1
  4351.     move.l    (a1),d0
  4352.     or.l    #$80,d0
  4353.     move.l    a0,a1
  4354.     add.l    #$E974,a1
  4355.     move.l    d0,(a1)
  4356. L687
  4357. ;   if (ctx->Visual->FrontAlphaEnabled)    
  4358.     move.l    $8F8(a0),a1
  4359.     tst.b    $24(a1)
  4360.     beq.b    L689
  4361. L688
  4362. ;   if (ctx->Visual->FrontAlph
  4363.     move.l    a0,a1
  4364.     add.l    #$E974,a1
  4365.     move.l    (a1),d0
  4366.     or.l    #$100,d0
  4367.     move.l    a0,a1
  4368.     add.l    #$E974,a1
  4369.     move.l    d0,(a1)
  4370. L689
  4371. ;   if (ctx->Visual->BackAlphaEnabled)    
  4372.     move.l    $8F8(a0),a1
  4373.     tst.b    $25(a1)
  4374.     beq.b    L691
  4375. L690
  4376. ;   if (ctx->Visual->BackAlphaE
  4377.     move.l    a0,a1
  4378.     add.l    #$E974,a1
  4379.     move.l    (a1),d0
  4380.     or.l    #$100,d0
  4381.     move.l    a0,a1
  4382.     add.l    #$E974,a1
  4383.     move.l    d0,(a1)
  4384. L691
  4385. ;      if (ctx->Driver.Dither) {
  4386.     move.l    a0,a1
  4387.     add.l    #$E540,a1
  4388.     tst.l    (a1)
  4389.     bmi.b    L695
  4390. L692
  4391.     move.l    a0,a1
  4392.     add.l    #$E540,a1
  4393.     move.l    (a1),d0
  4394.     move.l    a0,a1
  4395.     add.l    #$E540,a1
  4396.     add.l    $8(a1),d0
  4397.     move.l    $8FC(a0),a1
  4398.     cmp.l    4(a1),d0
  4399.     bgt.b    L695
  4400. L693
  4401.     move.l    a0,a1
  4402.     add.l    #$E540,a1
  4403.     tst.l    4(a1)
  4404.     bmi.b    L695
  4405. L694
  4406.     move.l    a0,a1
  4407.     add.l    #$E540,a1
  4408.     move.l    4(a1),d0
  4409.     move.l    a0,a1
  4410.     add.l    #$E540,a1
  4411.     add.l    $C(a1),d0
  4412.     move.l    $8FC(a0),a1
  4413.     cmp.l    $8(a1),d0
  4414.     ble.b    L696
  4415. L695
  4416. ;      ctx->RasterMask |= WINCLIP_BIT;
  4417.     move.l    a0,a1
  4418.     add.l    #$E974,a1
  4419.     move.l    (a1),d0
  4420.     or.l    #$200,d0
  4421.     move.l    a0,a1
  4422.     add.l    #$E974,a1
  4423.     move.l    d0,(a1)
  4424. L696
  4425. ;   if (ctx->Color.DrawBuffer==GL_FRONT_AND_BACK) 
  4426.     move.l    $21E2(a0),d0
  4427.     cmp.l    #$408,d0
  4428.     bne.b    L698
  4429. L697
  4430. ;      ctx->RasterMask |= FRONT_AND_BACK_BIT;
  4431.     move.l    a0,a1
  4432.     add.l    #$E974,a1
  4433.     move.l    (a1),d0
  4434.     or.l    #$400,d0
  4435.     move.l    a0,a1
  4436.     add.l    #$E974,a1
  4437.     move.l    d0,(a1)
  4438. L698
  4439. ;   if (ctx->Color.DrawBuffer==GL_NONE) 
  4440.     tst.l    $21E2(a0)
  4441.     bne.b    L700
  4442. L699
  4443. ;      ctx->RasterMask |= NO_DRAW_BIT;
  4444.     move.l    a0,a1
  4445.     add.l    #$E974,a1
  4446.     move.l    (a1),d0
  4447.     or.l    #$800,d0
  4448.     add.l    #$E974,a0
  4449.     move.l    d0,(a0)
  4450.     bra.b    L706
  4451. L700
  4452. ;   else if (ctx->Visual->RGBAflag && ctx->Color.ColorMask==0)
  4453.     move.l    $8F8(a0),a1
  4454.     tst.b    (a1)
  4455.     beq.b    L703
  4456. L701
  4457.     lea    $21DC(a0),a1
  4458.     cmp.w    #0,a1
  4459.     bne.b    L703
  4460. L702
  4461. ;      ctx->RasterMask |= NO_DRAW_BIT;
  4462.     move.l    a0,a1
  4463.     add.l    #$E974,a1
  4464.     move.l    (a1),d0
  4465.     or.l    #$800,d0
  4466.     add.l    #$E974,a0
  4467.     move.l    d0,(a0)
  4468.     bra.b    L706
  4469. L703
  4470. ;   else if (!ctx->Visual->RGBAflag && ctx->Color.IndexMask==
  4471.     move.l    $8F8(a0),a1
  4472.     tst.b    (a1)
  4473.     bne.b    L706
  4474. L704
  4475.     tst.l    $21D8(a0)
  4476.     bne.b    L706
  4477. L705
  4478. ;      ctx->RasterMask |= NO_DRAW_BIT;
  4479.     move.l    a0,a1
  4480.     add.l    #$E974,a1
  4481.     move.l    (a1),d0
  4482.     or.l    #$800,d0
  4483.     add.l    #$E974,a0
  4484.     move.l    d0,(a0)
  4485. L706
  4486.     rts
  4487.  
  4488.     SECTION "_update_clipmask:0",CODE
  4489.  
  4490.  
  4491. ;static void update_clipmask(GLcontext *ctx)
  4492. _update_clipmask
  4493.     move.l    4(a7),a0
  4494. L707
  4495. ;   ctx->ClipMask = 0;
  4496.     move.l    a0,a1
  4497.     add.l    #$E970,a1
  4498.     clr.l    (a1)
  4499. ;   if (ctx->Texture.Enabled) 
  4500.     move.l    a0,a1
  4501.     add.l    #$DEBA,a1
  4502.     tst.l    $8(a1)
  4503.     beq.b    L709
  4504. L708
  4505. ;      ctx->ClipMask |= CLIP_TEXTURE_BIT;
  4506.     move.l    a0,a1
  4507.     add.l    #$E970,a1
  4508.     move.l    (a1),d0
  4509.     or.l    #$10,d0
  4510.     move.l    a0,a1
  4511.     add.l    #$E970,a1
  4512.     move.l    d0,(a1)
  4513. L709
  4514. ;   if (ctx->Light.ShadeModel==GL_SMOOTH) 
  4515.     lea    $2318(a0),a1
  4516.     add.l    #$8E08,a1
  4517.     move.l    (a1),d0
  4518.     cmp.l    #$1D01,d0
  4519.     bne    L716
  4520. L710
  4521. ;      if (ctx->Visual->RGBAflag) 
  4522.     move.l    $8F8(a0),a1
  4523.     tst.b    (a1)
  4524.     beq.b    L714
  4525. L711
  4526. ;     ctx->ClipMask |= CLIP_FCOLOR_BIT;
  4527.     move.l    a0,a1
  4528.     add.l    #$E970,a1
  4529.     move.l    (a1),d0
  4530.     or.l    #1,d0
  4531.     move.l    a0,a1
  4532.     add.l    #$E970,a1
  4533.     move.l    d0,(a1)
  4534. ;     if (ctx->Light.Model.TwoSide) 
  4535.     move.l    a0,a1
  4536.     add.l    #$AA28,a1
  4537.     tst.b    $11(a1)
  4538.     beq.b    L713
  4539. L712
  4540. ;        ctx->ClipMask |= CLIP_BCOLOR_BIT;
  4541.     move.l    a0,a1
  4542.     add.l    #$E970,a1
  4543.     move.l    (a1),d0
  4544.     or.l    #2,d0
  4545.     move.l    a0,a1
  4546.     add.l    #$E970,a1
  4547.     move.l    d0,(a1)
  4548. L713
  4549.     bra.b    L716
  4550. L714
  4551. ;     ctx->ClipMask |= CLIP_FINDEX_BIT;
  4552.     move.l    a0,a1
  4553.     add.l    #$E970,a1
  4554.     move.l    (a1),d0
  4555.     or.l    #4,d0
  4556.     move.l    a0,a1
  4557.     add.l    #$E970,a1
  4558.     move.l    d0,(a1)
  4559. ;     if (ctx->Light.Model.TwoSide) 
  4560.     move.l    a0,a1
  4561.     add.l    #$AA28,a1
  4562.     tst.b    $11(a1)
  4563.     beq.b    L716
  4564. L715
  4565. ;        ctx->ClipMask |= CLIP_BINDEX_BIT;
  4566.     move.l    a0,a1
  4567.     add.l    #$E970,a1
  4568.     move.l    (a1),d0
  4569.     or.l    #$8,d0
  4570.     move.l    a0,a1
  4571.     add.l    #$E970,a1
  4572.     move.l    d0,(a1)
  4573. L716
  4574. ;   if (ctx->Texture.Enabled >= TEXTURE1_1D) 
  4575.     move.l    a0,a1
  4576.     add.l    #$DEBA,a1
  4577.     move.l    $8(a1),d0
  4578.     cmp.l    #$10,d0
  4579.     blo.b    L718
  4580. L717
  4581. ;      ctx->ClipInterpFunc = gl_clip_interp_all;
  4582.     move.l    a0,a1
  4583.     add.l    #$E990,a1
  4584.     move.l    #_gl_clip_interp_all,(a1)
  4585.     bra.b    L723
  4586. L718
  4587. ;      switch(ctx->ClipMask)
  4588.     move.l    a0,a1
  4589.     add.l    #$E970,a1
  4590.     move.l    (a1),d0
  4591.     cmp.l    #$10,d0
  4592.     beq.b    L720
  4593.     bhi.b    L724
  4594.     cmp.l    #1,d0
  4595.     beq.b    L721
  4596.     bra.b    L722
  4597. L724
  4598.     cmp.l    #$11,d0
  4599.     beq.b    L719
  4600.     bra.b    L722
  4601. ;         
  4602. L719
  4603. ;            ctx->ClipInterpFunc = gl_clip_interp_color_t
  4604.     move.l    a0,a1
  4605.     add.l    #$E990,a1
  4606.     move.l    #_gl_clip_interp_color_tex,(a1)
  4607. ;            
  4608.     bra.b    L723
  4609. L720
  4610. ;            ctx->ClipInterpFunc = gl_clip_interp_tex;
  4611.     move.l    a0,a1
  4612.     add.l    #$E990,a1
  4613.     move.l    #_gl_clip_interp_tex,(a1)
  4614. ;            
  4615.     bra.b    L723
  4616. L721
  4617. ;            ctx->ClipInterpFunc = gl_clip_interp_color;
  4618.     move.l    a0,a1
  4619.     add.l    #$E990,a1
  4620.     move.l    #_gl_clip_interp_color,(a1)
  4621. ;            
  4622.     bra.b    L723
  4623. L722
  4624. ;            ctx->ClipInterpFunc = gl_clip_interp_all;
  4625.     move.l    a0,a1
  4626.     add.l    #$E990,a1
  4627.     move.l    #_gl_clip_interp_all,(a1)
  4628. L723
  4629.     rts
  4630.  
  4631.     SECTION "_gl_update_state:0",CODE
  4632.  
  4633.  
  4634. ;void gl_update_state( GLcontext *ctx )
  4635.     XDEF    _gl_update_state
  4636. _gl_update_state
  4637.     movem.l    d2/d3/a2,-(a7)
  4638.     move.l    $10(a7),a2
  4639. L725
  4640. ;   if (ctx->NewState & NEW_RASTER_OPS) 
  4641.     move.l    a2,a0
  4642.     add.l    #$E960,a0
  4643.     move.l    (a0),d0
  4644.     and.l    #2,d0
  4645.     beq.b    L728
  4646. L726
  4647. ;      update_pixel_logic(ctx);
  4648.     move.l    a2,-(a7)
  4649.     jsr    _update_pixel_logic
  4650.     addq.w    #4,a7
  4651. ;      update_pixel_masking(ctx);
  4652.     move.l    a2,-(a7)
  4653.     jsr    _update_pixel_masking
  4654.     addq.w    #4,a7
  4655. ;      update_fog_mode(ctx);
  4656.     move.l    a2,-(a7)
  4657.     jsr    _update_fog_mode
  4658.     addq.w    #4,a7
  4659. ;      update_rasterflags(ctx);
  4660.     move.l    a2,-(a7)
  4661.     jsr    _update_rasterflags
  4662.     addq.w    #4,a7
  4663. ;      if (ctx->Driver.Dither) 
  4664.     tst.l    $974(a2)
  4665.     beq.b    L728
  4666. L727
  4667. ;         (*ctx->Driver.Dither)( ctx, ctx->Color.DitherFlag )
  4668.     move.b    $2215(a2),-(a7)
  4669.     move.l    a2,-(a7)
  4670.     move.l    $974(a2),a0
  4671.     jsr    (a0)
  4672.     addq.w    #6,a7
  4673. L728
  4674. ;   if (ctx->NewState & (NEW_RASTER_OPS | NEW_LIGHTING)) 
  4675.     move.l    a2,a0
  4676.     add.l    #$E960,a0
  4677.     move.l    (a0),d0
  4678.     and.l    #3,d0
  4679.     beq.b    L730
  4680. L729
  4681. ;      update_clipmask(ctx);
  4682.     move.l    a2,-(a7)
  4683.     jsr    _update_clipmask
  4684.     addq.w    #4,a7
  4685. L730
  4686. ;   if (ctx->NewState & NEW_LIGHTING) 
  4687.     move.l    a2,a0
  4688.     add.l    #$E960,a0
  4689.     move.l    (a0),d0
  4690.     and.l    #1,d0
  4691.     beq.b    L732
  4692. L731
  4693. ;      gl_update_lighting(ctx);
  4694.     move.l    a2,-(a7)
  4695.     jsr    _gl_update_lighting
  4696.     addq.w    #4,a7
  4697. ;      gl_set_color_function(ctx);
  4698.     move.l    a2,-(a7)
  4699.     jsr    _gl_set_color_function
  4700.     addq.w    #4,a7
  4701. L732
  4702. ;   if (ctx->NewState & NEW_TEXTURING) 
  4703.     move.l    a2,a0
  4704.     add.l    #$E960,a0
  4705.     move.l    (a0),d0
  4706.     and.l    #4,d0
  4707.     beq.b    L734
  4708. L733
  4709. ;      gl_update_texture_state(ctx);
  4710.     move.l    a2,-(a7)
  4711.     jsr    _gl_update_texture_state
  4712.     addq.w    #4,a7
  4713. L734
  4714. ;   if (ctx->NewState & (NEW_LIGHTING | NEW_TEXTURING)) 
  4715.     move.l    a2,a0
  4716.     add.l    #$E960,a0
  4717.     move.l    (a0),d0
  4718.     and.l    #5,d0
  4719.     beq    L748
  4720. L735
  4721. ;      GLboolean sphereGen = GL_FALSE;
  4722.     moveq    #0,d2
  4723. ;      if (ctx->Texture.Enabled) 
  4724.     move.l    a2,a0
  4725.     add.l    #$DEBA,a0
  4726.     tst.l    $8(a0)
  4727.     beq    L744
  4728. L736
  4729. ;         for (texSet=0;
  4730.     moveq    #0,d0
  4731.     bra    L743
  4732. L737
  4733. ;            if ((ctx->Texture.Set[texSet].GenModeS==GL_S
  4734.     move.l    a2,a0
  4735.     add.l    #$DEC6,a0
  4736.     move.l    d0,d1
  4737.     muls.l    #$BC,d1
  4738.     move.l    $18(a0,d1.l),d1
  4739.     cmp.l    #$2402,d1
  4740.     bne.b    L739
  4741. L738
  4742.     move.l    a2,a0
  4743.     add.l    #$DEC6,a0
  4744.     move.l    d0,d1
  4745.     muls.l    #$BC,d1
  4746.     move.l    $14(a0,d1.l),d1
  4747.     and.l    #1,d1
  4748.     bne.b    L741
  4749. L739
  4750.     move.l    a2,a0
  4751.     add.l    #$DEC6,a0
  4752.     move.l    d0,d1
  4753.     muls.l    #$BC,d1
  4754.     move.l    $1C(a0,d1.l),d1
  4755.     cmp.l    #$2402,d1
  4756.     bne.b    L742
  4757. L740
  4758.     move.l    a2,a0
  4759.     add.l    #$DEC6,a0
  4760.     move.l    d0,d1
  4761.     muls.l    #$BC,d1
  4762.     move.l    $14(a0,d1.l),d1
  4763.     and.l    #2,d1
  4764.     beq.b    L742
  4765. L741
  4766. ;               sphereGen = GL_TRUE;
  4767.     moveq    #1,d2
  4768. L742
  4769.     addq.l    #1,d0
  4770. L743
  4771.     cmp.l    #2,d0
  4772.     blo    L737
  4773. L744
  4774. ;      if (ctx->Light.Enabled || sphereGen) 
  4775.     lea    $2318(a2),a0
  4776.     add.l    #$8E06,a0
  4777.     tst.b    (a0)
  4778.     bne.b    L746
  4779. L745
  4780.     tst.b    d2
  4781.     beq.b    L747
  4782. L746
  4783. ;         ctx->NeedNormals = GL_TRUE;
  4784.     move.l    a2,a0
  4785.     add.l    #$E986,a0
  4786.     move.b    #1,(a0)
  4787.     bra.b    L748
  4788. L747
  4789. ;         ctx->NeedNormals = GL_FALSE;
  4790.     move.l    a2,a0
  4791.     add.l    #$E986,a0
  4792.     clr.b    (a0)
  4793. L748
  4794. ;   if (ctx->NewState & NEW_RASTER_OPS) 
  4795.     move.l    a2,a0
  4796.     add.l    #$E960,a0
  4797.     move.l    (a0),d0
  4798.     and.l    #2,d0
  4799.     beq.b    L756
  4800. L749
  4801. ;      if (ctx->Fog.Enabled ||
  4802.     tst.b    $22DE(a2)
  4803.     bne.b    L754
  4804. L750
  4805.     move.l    a2,a0
  4806.     add.l    #$DEBA,a0
  4807.     tst.l    $8(a0)
  4808.     bne.b    L754
  4809. L751
  4810.     tst.b    $21ED(a2)
  4811.     bne.b    L754
  4812. L752
  4813.     tst.b    $21E0(a2)
  4814.     bne.b    L754
  4815. L753
  4816.     tst.b    $2214(a2)
  4817.     beq.b    L755
  4818. L754
  4819. ;         ctx->MutablePixels = GL_TRUE;
  4820.     move.l    a2,a0
  4821.     add.l    #$E987,a0
  4822.     move.b    #1,(a0)
  4823.     bra.b    L756
  4824. L755
  4825. ;         ctx->MutablePixels = GL_FALSE;
  4826.     move.l    a2,a0
  4827.     add.l    #$E987,a0
  4828.     clr.b    (a0)
  4829. L756
  4830. ;   if (ctx->NewState & (NEW_RASTER_OPS | NEW_LIGHTING)) 
  4831.     move.l    a2,a0
  4832.     add.l    #$E960,a0
  4833.     move.l    (a0),d0
  4834.     and.l    #3,d0
  4835.     beq.b    L766
  4836. L757
  4837. ;      if (ctx->Light.ShadeModel==GL_SMOOTH ||
  4838.     lea    $2318(a2),a0
  4839.     add.l    #$8E08,a0
  4840.     move.l    (a0),d0
  4841.     cmp.l    #$1D01,d0
  4842.     beq.b    L764
  4843. L758
  4844.     lea    $2318(a2),a0
  4845.     add.l    #$8E06,a0
  4846.     tst.b    (a0)
  4847.     bne.b    L764
  4848. L759
  4849.     tst.b    $22DE(a2)
  4850.     bne.b    L764
  4851. L760
  4852.     move.l    a2,a0
  4853.     add.l    #$DEBA,a0
  4854.     tst.l    $8(a0)
  4855.     bne.b    L764
  4856. L761
  4857.     tst.b    $21ED(a2)
  4858.     bne.b    L764
  4859. L762
  4860.     tst.b    $21E0(a2)
  4861.     bne.b    L764
  4862. L763
  4863.     tst.b    $2214(a2)
  4864.     beq.b    L765
  4865. L764
  4866. ;         ctx->MonoPixels = GL_FALSE;
  4867.     move.l    a2,a0
  4868.     add.l    #$E988,a0
  4869.     clr.b    (a0)
  4870.     bra.b    L766
  4871. L765
  4872. ;         ctx->MonoPixels = GL_TRUE;
  4873.     move.l    a2,a0
  4874.     add.l    #$E988,a0
  4875.     move.b    #1,(a0)
  4876. L766
  4877. ;   if (ctx->NewState & NEW_POLYGON) 
  4878.     move.l    a2,a0
  4879.     add.l    #$E960,a0
  4880.     move.l    (a0),d0
  4881.     and.l    #$8,d0
  4882.     beq    L779
  4883. L767
  4884. ;      ctx->Polygon.CullBits = 0;
  4885.     move.l    a2,a0
  4886.     add.l    #$DE00,a0
  4887.     clr.l    (a0)
  4888. ;      if (ctx->Polygon.CullFlag) 
  4889.     move.l    a2,a0
  4890.     add.l    #$DDEE,a0
  4891.     tst.b    $D(a0)
  4892.     beq    L774
  4893. L768
  4894. ;         if (ctx->Polygon.CullFaceMode==GL_FRONT ||
  4895.     move.l    a2,a0
  4896.     add.l    #$DDEE,a0
  4897.     move.l    $E(a0),d0
  4898.     cmp.l    #$404,d0
  4899.     beq.b    L770
  4900. L769
  4901.     move.l    a2,a0
  4902.     add.l    #$DDEE,a0
  4903.     move.l    $E(a0),d0
  4904.     cmp.l    #$408,d0
  4905.     bne.b    L771
  4906. L770
  4907. ;            ctx->Polygon.CullBits |= 1;
  4908.     move.l    a2,a0
  4909.     add.l    #$DE00,a0
  4910.     move.l    (a0),d0
  4911.     or.l    #1,d0
  4912.     move.l    a2,a0
  4913.     add.l    #$DE00,a0
  4914.     move.l    d0,(a0)
  4915. L771
  4916. ;         if (ctx->Polygon.CullFaceMode==GL_BACK ||
  4917.     move.l    a2,a0
  4918.     add.l    #$DDEE,a0
  4919.     move.l    $E(a0),d0
  4920.     cmp.l    #$405,d0
  4921.     beq.b    L773
  4922. L772
  4923.     move.l    a2,a0
  4924.     add.l    #$DDEE,a0
  4925.     move.l    $E(a0),d0
  4926.     cmp.l    #$408,d0
  4927.     bne.b    L774
  4928. L773
  4929. ;            ctx->Polygon.CullBits |= 2;
  4930.     move.l    a2,a0
  4931.     add.l    #$DE00,a0
  4932.     move.l    (a0),d0
  4933.     or.l    #2,d0
  4934.     move.l    a2,a0
  4935.     add.l    #$DE00,a0
  4936.     move.l    d0,(a0)
  4937. L774
  4938. ;      ctx->Polygon.OffsetAny = ctx->Polygon.OffsetPoint ||
  4939.     moveq    #1,d0
  4940.     move.l    a2,a0
  4941.     add.l    #$DDEE,a0
  4942.     tst.b    $20(a0)
  4943.     bne.b    L778
  4944. L775
  4945.     move.l    a2,a0
  4946.     add.l    #$DDEE,a0
  4947.     tst.b    $21(a0)
  4948.     bne.b    L778
  4949. L776
  4950.     move.l    a2,a0
  4951.     add.l    #$DDEE,a0
  4952.     tst.b    $22(a0)
  4953.     bne.b    L778
  4954. L777
  4955.     moveq    #0,d0
  4956. L778
  4957.     move.l    a2,a0
  4958.     add.l    #$DE11,a0
  4959.     move.b    d0,(a0)
  4960. ;      ctx->PointZoffset   = 0.0;
  4961.     move.l    a2,a0
  4962.     add.l    #$E982,a0
  4963.     clr.l    (a0)
  4964. ;      ctx->LineZoffset    = 0.0;
  4965.     move.l    a2,a0
  4966.     add.l    #$E97E,a0
  4967.     clr.l    (a0)
  4968. ;      ctx->PolygonZoffset = 0.0;
  4969.     move.l    a2,a0
  4970.     add.l    #$E97A,a0
  4971.     clr.l    (a0)
  4972. L779
  4973. ;   if (ctx->NewState & (NEW_POLYGON | NEW_LIGHTING)) 
  4974.     move.l    a2,a0
  4975.     add.l    #$E960,a0
  4976.     move.l    (a0),d0
  4977.     and.l    #$9,d0
  4978.     beq.b    L787
  4979. L780
  4980. ;      if (   ctx->Polygon.Unfilled
  4981.     move.l    a2,a0
  4982.     add.l    #$DDEE,a0
  4983.     tst.b    $C(a0)
  4984.     bne.b    L785
  4985. L781
  4986.     move.l    a2,a0
  4987.     add.l    #$DDEE,a0
  4988.     tst.b    $23(a0)
  4989.     bne.b    L785
  4990. L782
  4991.     move.l    a2,a0
  4992.     add.l    #$DDEE,a0
  4993.     tst.b    $D(a0)
  4994.     bne.b    L785
  4995. L783
  4996.     move.l    a2,a0
  4997.     add.l    #$AA28,a0
  4998.     tst.b    $11(a0)
  4999.     bne.b    L785
  5000. L784
  5001.     move.l    a2,a0
  5002.     add.l    #$E964,a0
  5003.     move.l    (a0),d0
  5004.     cmp.l    #$1C00,d0
  5005.     beq.b    L786
  5006. L785
  5007. ;         ctx->DirectTriangles = GL_FALSE;
  5008.     move.l    a2,a0
  5009.     add.l    #$E979,a0
  5010.     clr.b    (a0)
  5011.     bra.b    L787
  5012. L786
  5013. ;         ctx->DirectTriangles = GL_TRUE;
  5014.     move.l    a2,a0
  5015.     add.l    #$E979,a0
  5016.     move.b    #1,(a0)
  5017. L787
  5018. ;   ctx->Buffer->Xmin = 0;
  5019.     move.l    $8FC(a2),a0
  5020.     clr.l    $24(a0)
  5021. ;   ctx->Buffer->Ymin = 0;
  5022.     move.l    $8FC(a2),a0
  5023.     clr.l    $2C(a0)
  5024. ;   ctx->Buffer->Xmax = ctx->Buffer->Width-1;
  5025.     move.l    $8FC(a2),a0
  5026.     move.l    4(a0),d0
  5027.     subq.l    #1,d0
  5028.     move.l    $8FC(a2),a0
  5029.     move.l    d0,$28(a0)
  5030. ;   ctx->Buffer->Ymax = ctx->Buffer->Height-1;
  5031.     move.l    $8FC(a2),a0
  5032.     move.l    $8(a0),d0
  5033.     subq.l    #1,d0
  5034.     move.l    $8FC(a2),a0
  5035.     move.l    d0,$30(a0)
  5036. ;   if (ctx->Scissor.Enabled) 
  5037.     move.l    a2,a0
  5038.     add.l    #$DE92,a0
  5039.     tst.b    (a0)
  5040.     beq    L796
  5041. L788
  5042. ;      if (ctx->Scissor.X > ctx->Buffer->Xmin) 
  5043.     move.l    a2,a0
  5044.     add.l    #$DE92,a0
  5045.     move.l    2(a0),d1
  5046.     move.l    $8FC(a2),a0
  5047.     cmp.l    $24(a0),d1
  5048.     ble.b    L790
  5049. L789
  5050. ;         ctx->Buffer->Xmin = ctx->Scissor.X;
  5051.     move.l    a2,a0
  5052.     add.l    #$DE92,a0
  5053.     move.l    2(a0),d0
  5054.     move.l    $8FC(a2),a0
  5055.     move.l    d0,$24(a0)
  5056. L790
  5057. ;      if (ctx->Scissor.Y > ctx->Buffer->Ymin) 
  5058.     move.l    a2,a0
  5059.     add.l    #$DE92,a0
  5060.     move.l    6(a0),d1
  5061.     move.l    $8FC(a2),a0
  5062.     cmp.l    $2C(a0),d1
  5063.     ble.b    L792
  5064. L791
  5065. ;         ctx->Buffer->Ymin = ctx->Scissor.Y;
  5066.     move.l    a2,a0
  5067.     add.l    #$DE92,a0
  5068.     move.l    6(a0),d0
  5069.     move.l    $8FC(a2),a0
  5070.     move.l    d0,$2C(a0)
  5071. L792
  5072. ;      if (ctx->Scissor.X + ctx->Scissor.Width - 1 < ctx->Buffe
  5073.     move.l    a2,a0
  5074.     add.l    #$DE92,a0
  5075.     move.l    2(a0),d0
  5076.     move.l    a2,a0
  5077.     add.l    #$DE92,a0
  5078.     add.l    $A(a0),d0
  5079.     subq.l    #1,d0
  5080.     move.l    $8FC(a2),a0
  5081.     cmp.l    $28(a0),d0
  5082.     bge.b    L794
  5083. L793
  5084. ;         ctx->Buffer->Xmax = ctx->Scissor.X + ctx->Scissor.
  5085.     move.l    a2,a0
  5086.     add.l    #$DE92,a0
  5087.     move.l    2(a0),d0
  5088.     move.l    a2,a0
  5089.     add.l    #$DE92,a0
  5090.     add.l    $A(a0),d0
  5091.     subq.l    #1,d0
  5092.     move.l    $8FC(a2),a0
  5093.     move.l    d0,$28(a0)
  5094. L794
  5095. ;      if (ctx->Scissor.Y + ctx->Scissor.Height - 1 < ctx->Buff
  5096.     move.l    a2,a0
  5097.     add.l    #$DE92,a0
  5098.     move.l    6(a0),d0
  5099.     move.l    a2,a0
  5100.     add.l    #$DE92,a0
  5101.     add.l    $E(a0),d0
  5102.     subq.l    #1,d0
  5103.     move.l    $8FC(a2),a0
  5104.     cmp.l    $30(a0),d0
  5105.     bge.b    L796
  5106. L795
  5107. ;         ctx->Buffer->Ymax = ctx->Scissor.Y + ctx->Scissor.
  5108.     move.l    a2,a0
  5109.     add.l    #$DE92,a0
  5110.     move.l    6(a0),d0
  5111.     move.l    a2,a0
  5112.     add.l    #$DE92,a0
  5113.     add.l    $E(a0),d0
  5114.     subq.l    #1,d0
  5115.     move.l    $8FC(a2),a0
  5116.     move.l    d0,$30(a0)
  5117. L796
  5118. ;   if (ctx->NewState & NEW_RASTER_OPS) 
  5119.     move.l    a2,a0
  5120.     add.l    #$E960,a0
  5121.     move.l    (a0),d0
  5122.     and.l    #2,d0
  5123.     beq    L805
  5124. L797
  5125. ;      ctx->Driver.AllocDepthBuffer = gl_alloc_depth_buffer;
  5126.     move.l    #_gl_alloc_depth_buffer,$984(a2)
  5127. ;      if (ctx->Depth.Mask) 
  5128.     tst.b    $22A5(a2)
  5129.     beq.b    L803
  5130. L798
  5131. ;         switch (ctx->Depth.Func)
  5132.     move.l    $229C(a2),d0
  5133.     cmp.l    #$201,d0
  5134.     beq.b    L799
  5135.     cmp.l    #$204,d0
  5136.     beq.b    L800
  5137.     bra.b    L801
  5138. ;            
  5139. L799
  5140. ;               ctx->Driver.DepthTestSpan = gl_depth_t
  5141.     move.l    #_gl_depth_test_span_less,$988(a2)
  5142. ;               ctx->Driver.DepthTestPixels = gl_depth
  5143.     move.l    #_gl_depth_test_pixels_less,$98C(a2)
  5144. ;               
  5145.     bra.b    L802
  5146. L800
  5147. ;               ctx->Driver.DepthTestSpan = gl_depth_t
  5148.     move.l    #_gl_depth_test_span_greater,$988(a2)
  5149. ;               ctx->Driver.DepthTestPixels = gl_depth
  5150.     move.l    #_gl_depth_test_pixels_greater,$98C(a2)
  5151. ;               
  5152.     bra.b    L802
  5153. L801
  5154. ;               ctx->Driver.DepthTestSpan = gl_depth_t
  5155.     move.l    #_gl_depth_test_span_generic,$988(a2)
  5156. ;               ctx->Driver.DepthTestPixels = gl_depth
  5157.     move.l    #_gl_depth_test_pixels_generic,$98C(a2)
  5158. L802
  5159.     bra.b    L804
  5160. L803
  5161. ;         ctx->Driver.DepthTestSpan = gl_depth_test_span_gen
  5162.     move.l    #_gl_depth_test_span_generic,$988(a2)
  5163. ;         ctx->Driver.DepthTestPixels = gl_depth_test_pixels
  5164.     move.l    #_gl_depth_test_pixels_generic,$98C(a2)
  5165. L804
  5166. ;      ctx->Driver.ReadDepthSpanFloat = gl_read_depth_span_floa
  5167.     move.l    #_gl_read_depth_span_float,$990(a2)
  5168. ;      ctx->Driver.ReadDepthSpanInt = gl_read_depth_span_int;
  5169.     move.l    #_gl_read_depth_span_int,$994(a2)
  5170. L805
  5171. ;   ctx->Driver.PointsFunc = NULL;
  5172.     clr.l    $998(a2)
  5173. ;   ctx->Driver.LineFunc = NULL;
  5174.     clr.l    $99C(a2)
  5175. ;   ctx->Driver.TriangleFunc = NULL;
  5176.     clr.l    $9A0(a2)
  5177. ;   ctx->Driver.QuadFunc = NULL;
  5178.     clr.l    $9A4(a2)
  5179. ;   ctx->Driver.RectFunc = NULL;
  5180.     clr.l    $9A8(a2)
  5181. ;   (*ctx->Driver.UpdateState)(ctx);
  5182.     move.l    a2,-(a7)
  5183.     move.l    $904(a2),a0
  5184.     jsr    (a0)
  5185.     addq.w    #4,a7
  5186. ;   gl_set_point_function(ctx);
  5187.     move.l    a2,-(a7)
  5188.     jsr    _gl_set_point_function
  5189.     addq.w    #4,a7
  5190. ;   gl_set_line_function(ctx);
  5191.     move.l    a2,-(a7)
  5192.     jsr    _gl_set_line_function
  5193.     addq.w    #4,a7
  5194. ;   gl_set_triangle_function(ctx);
  5195.     move.l    a2,-(a7)
  5196.     jsr    _gl_set_triangle_function
  5197.     addq.w    #4,a7
  5198. ;   gl_set_quad_function(ctx);
  5199.     move.l    a2,-(a7)
  5200.     jsr    _gl_set_quad_function
  5201.     addq.w    #4,a7
  5202. ;   gl_set_vertex_function(ctx);
  5203.     move.l    a2,-(a7)
  5204.     jsr    _gl_set_vertex_function
  5205.     addq.w    #4,a7
  5206. ;   ctx->NewState = 0;
  5207.     move.l    a2,a0
  5208.     add.l    #$E960,a0
  5209.     clr.l    (a0)
  5210.     movem.l    (a7)+,d2/d3/a2
  5211.     rts
  5212.  
  5213.     END
  5214.